Import Geant4 10.3.0.beta source tree
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -9,4 +9,5 @@ add_subdirectory(Hadr03)
|
||||
add_subdirectory(Hadr04)
|
||||
add_subdirectory(Hadr05)
|
||||
add_subdirectory(Hadr06)
|
||||
add_subdirectory(Hadr07)
|
||||
add_subdirectory(FissionFragment)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 <FTFP_BERT> 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 :)
|
||||
|
||||
@@ -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
|
||||
#
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 <QBBC> 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 :)
|
||||
|
||||
@@ -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 ===================
|
||||
|
||||
@@ -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
|
||||
//
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 <DefaultRegionForTheWorld> -- -- appears in <Water_ts> 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)
|
||||
|
||||
@@ -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 :)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 :)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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......
|
||||
|
||||
@@ -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"));
|
||||
|
||||
|
||||
@@ -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<G4String,ParticleData>::iterator itn;
|
||||
for (itn = fParticleDataMap2.begin(); itn != fParticleDataMap2.end(); itn++) {
|
||||
|
||||
@@ -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
|
||||
|
||||
*/
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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......
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
+22
@@ -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
|
||||
+32
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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<G4GlobalMagFieldMessenger*> fFieldMessenger;
|
||||
|
||||
private:
|
||||
|
||||
void DefineMaterials();
|
||||
void ComputeParameters();
|
||||
G4VPhysicalVolume* ConstructVolumes();
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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/TestEm1/include/EmStandardPhysics.hh
|
||||
/// \brief Definition of the EmStandardPhysics class
|
||||
//
|
||||
// $Id: EmStandardPhysics.hh 66586 2012-12-21 10:48:39Z ihrivnac $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef EmStandardPhysics_h
|
||||
#define EmStandardPhysics_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class EmStandardPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
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();
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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/GammaPhysics.hh
|
||||
/// \brief Definition of the GammaPhysics class
|
||||
//
|
||||
// $Id: GammaPhysics.hh 66587 2012-12-21 11:06:44Z ihrivnac $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm11/include/PhysListEmStandard.hh
|
||||
/// \brief Definition of the PhysListEmStandard class
|
||||
//
|
||||
//
|
||||
// $Id: PhysListEmStandard.hh 66241 2012-12-13 18:34:42Z gunter $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef PhysListEmStandard_h
|
||||
#define PhysListEmStandard_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class PhysListEmStandard : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
PhysListEmStandard(const G4String& name = "standard");
|
||||
~PhysListEmStandard();
|
||||
|
||||
public:
|
||||
// This method is dummy for physics
|
||||
virtual void ConstructParticle() {};
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file hadronic/Hadr03/include/PhysicsList.hh
|
||||
/// \brief Definition of the PhysicsList class
|
||||
//
|
||||
// $Id: PhysicsList.hh 66587 2012-12-21 11:06:44Z ihrivnac $
|
||||
//
|
||||
|
||||
#ifndef PhysicsList_h
|
||||
#define PhysicsList_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class PhysicsList: public G4VModularPhysicsList
|
||||
{
|
||||
public:
|
||||
PhysicsList();
|
||||
~PhysicsList();
|
||||
|
||||
public:
|
||||
virtual void SetCuts();
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on 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/Run.hh
|
||||
/// \brief Definition of the Run class
|
||||
//
|
||||
// $Id: Run.hh 71375 2013-06-14 07:39:33Z maire $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef Run_h
|
||||
#define Run_h 1
|
||||
|
||||
#include "DetectorConstruction.hh"
|
||||
|
||||
#include "G4Run.hh"
|
||||
#include "G4VProcess.hh"
|
||||
#include "globals.hh"
|
||||
#include <map>
|
||||
|
||||
class DetectorConstruction;
|
||||
class G4ParticleDefinition;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class Run : public G4Run
|
||||
{
|
||||
public:
|
||||
Run(DetectorConstruction* detector);
|
||||
~Run();
|
||||
|
||||
public:
|
||||
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();
|
||||
|
||||
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:
|
||||
DetectorConstruction* fDetector;
|
||||
G4ParticleDefinition* fParticle;
|
||||
G4double fEkin;
|
||||
|
||||
G4int fStatus[3];
|
||||
|
||||
G4double fEdeposit[MaxAbsor], fEmin[MaxAbsor], fEmax[MaxAbsor];
|
||||
G4double fTotEdep[3];
|
||||
|
||||
std::map<G4String,G4int> fProcCounter;
|
||||
std::map<G4String,ParticleData> fParticleDataMap[MaxAbsor];
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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/TestEm11/include/StepMaxMessenger.hh
|
||||
/// \brief Definition of the StepMaxMessenger class
|
||||
//
|
||||
// $Id: StepMaxMessenger.hh 66241 2012-12-13 18:34:42Z gunter $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef StepMaxMessenger_h
|
||||
#define StepMaxMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class StepMaxProcess;
|
||||
class G4UIcmdWithABool;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class StepMaxMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
StepMaxMessenger(StepMaxProcess*);
|
||||
~StepMaxMessenger();
|
||||
|
||||
virtual void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
StepMaxProcess* fStepMax;
|
||||
G4UIcmdWithADoubleAndUnit* fStepMax1Cmd;
|
||||
G4UIcmdWithABool* fStepMax2Cmd;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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();
|
||||
}
|
||||
@@ -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");
|
||||
*/
|
||||
}
|
||||
@@ -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
|
||||
@@ -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......
|
||||
@@ -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 <iomanip>
|
||||
|
||||
//....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......
|
||||
|
||||
@@ -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 <sstream>
|
||||
|
||||
#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......
|
||||
@@ -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......
|
||||
|
||||
@@ -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<MaxAbsor; k++) { fEdepAbsor[k] = 0.0; }
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void EventAction::EndOfEventAction(const G4Event*)
|
||||
{
|
||||
//get Run
|
||||
Run* run = static_cast<Run*>(
|
||||
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......
|
||||
|
||||
|
||||
@@ -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......
|
||||
@@ -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......
|
||||
@@ -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; k<kMaxHisto; k++) {
|
||||
G4int ih = analysisManager->CreateH1(id[k], title[k], nbins, vmin, vmax);
|
||||
analysisManager->SetH1Activation(ih, false);
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -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......
|
||||
@@ -0,0 +1,192 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on 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: PhysListEmStandard.cc 94269 2015-11-10 07:55:24Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "PhysListEmStandard.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 "G4EmProcessOptions.hh"
|
||||
#include "G4MscStepLimitType.hh"
|
||||
|
||||
#include "G4LossTableManager.hh"
|
||||
#include "G4UAtomicDeexcitation.hh"
|
||||
|
||||
#include "G4BuilderType.hh"
|
||||
#include "G4EmModelActivator.hh"
|
||||
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PhysListEmStandard::PhysListEmStandard(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetFluo(true);
|
||||
param->SetMscStepLimitType(fUseSafetyPlus);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PhysListEmStandard::~PhysListEmStandard()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysListEmStandard::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);
|
||||
G4ComptonScattering* cs = new G4ComptonScattering;
|
||||
cs->SetEmModel(new G4KleinNishinaModel());
|
||||
ph->RegisterProcess(cs, particle);
|
||||
ph->RegisterProcess(new G4GammaConversion, particle);
|
||||
////ph->RegisterProcess(new G4RayleighScattering, particle);
|
||||
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
ph->RegisterProcess(new G4eMultipleScattering(), particle);
|
||||
//
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
eIoni->SetStepFunction(0.1, 100*um);
|
||||
ph->RegisterProcess(eIoni, particle);
|
||||
//
|
||||
ph->RegisterProcess(new G4eBremsstrahlung(), particle);
|
||||
|
||||
} else if (particleName == "e+") {
|
||||
|
||||
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 G4eplusAnnihilation(), particle);
|
||||
|
||||
} else if (particleName == "mu+" ||
|
||||
particleName == "mu-" ) {
|
||||
|
||||
ph->RegisterProcess(new G4MuMultipleScattering(), particle);
|
||||
G4MuIonisation* muIoni = new G4MuIonisation();
|
||||
muIoni->SetStepFunction(0.1, 50*um);
|
||||
ph->RegisterProcess(muIoni, particle);
|
||||
ph->RegisterProcess(new G4MuBremsstrahlung(), particle);
|
||||
ph->RegisterProcess(new G4MuPairProduction(), particle);
|
||||
|
||||
} else if( particleName == "proton" ||
|
||||
particleName == "pi-" ||
|
||||
particleName == "pi+" ) {
|
||||
|
||||
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);
|
||||
|
||||
} else if( particleName == "alpha" ||
|
||||
particleName == "He3" ) {
|
||||
|
||||
ph->RegisterProcess(new G4hMultipleScattering(), particle);
|
||||
G4ionIonisation* ionIoni = new G4ionIonisation();
|
||||
ionIoni->SetStepFunction(0.1, 1*um);
|
||||
ph->RegisterProcess(ionIoni, particle);
|
||||
ph->RegisterProcess(new G4NuclearStopping(), particle);
|
||||
|
||||
} else if( particleName == "GenericIon" ) {
|
||||
|
||||
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);
|
||||
|
||||
} 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);
|
||||
}
|
||||
}
|
||||
|
||||
// Deexcitation
|
||||
//
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
G4EmModelActivator mact;
|
||||
mact.ConstructProcess();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -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......
|
||||
@@ -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......
|
||||
|
||||
@@ -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......
|
||||
|
||||
@@ -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 <iomanip>
|
||||
|
||||
//....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; i<MaxAbsor; ++i) {
|
||||
fEdeposit[i] = 0.; fEmin[i] = joule; fEmax[i] = 0.;
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
Run::~Run()
|
||||
{ }
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void Run::SetPrimary (G4ParticleDefinition* particle, G4double energy)
|
||||
{
|
||||
fParticle = particle;
|
||||
fEkin = energy;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void Run::CountProcesses(const G4VProcess* process)
|
||||
{
|
||||
G4String procName = process->GetProcessName();
|
||||
std::map<G4String,G4int>::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<G4String, ParticleData>::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<const Run*>(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<G4String,G4int>::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<G4String,ParticleData>::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<G4String,G4int>::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<G4String,ParticleData>::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<G4String,ParticleData>::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......
|
||||
@@ -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......
|
||||
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file hadronic/Hadr03/src/StepMaxBuilder.cc
|
||||
/// \brief Implementation of the StepMaxBuilder class
|
||||
//
|
||||
// $Id: StepMaxBuilder.cc 66587 2012-12-21 11:06:44Z ihrivnac $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "StepMaxBuilder.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
// Processes
|
||||
|
||||
#include "StepMaxProcess.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
StepMaxBuilder::StepMaxBuilder(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{ }
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
StepMaxBuilder::~StepMaxBuilder()
|
||||
{ }
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void StepMaxBuilder::ConstructProcess()
|
||||
{
|
||||
// Step limitation seen as a process
|
||||
StepMaxProcess* process = new StepMaxProcess();
|
||||
|
||||
aParticleIterator->reset();
|
||||
while ((*aParticleIterator)()){
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
if (process->IsApplicable(*particle)) pmanager->AddDiscreteProcess(process);
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -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......
|
||||
@@ -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......
|
||||
@@ -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<Run*>(
|
||||
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......
|
||||
|
||||
|
||||
@@ -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......
|
||||
@@ -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<Run*>(
|
||||
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<Run*>(
|
||||
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......
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user