Import Geant4 10.7.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2020-06-26 10:23:25 +02:00
parent c02c370437
commit 67ba86d073
1871 changed files with 174422 additions and 131884 deletions
+12 -11
View File
@@ -74,7 +74,7 @@
\section Hadr03_s5 HISTOGRAMS
The test contains 12 built-in 1D histograms, which are managed by
The test contains 13 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
@@ -83,16 +83,17 @@
- 1 : "kinetic energy of scattered primary particle"
- 2 : "kinetic energy of gamma"
- 3 : "kinetic energy of neutrons"
- 4 : "kinetic energy of protons"
- 5 : "kinetic energy of deuterons"
- 6 : "kinetic energy of alphas"
- 7 : "kinetic energy of nuclei"
- 8 : "kinetic energy of mesons"
- 9 : "kinetic energy of baryons"
- 10 : "Q = Ekin out - Ekin in"
- 11 : "Pbalance = mag(P_out - P_in)"
- 12 : "atomic mass of nuclei"
- 3 : "kinetic energy of e-"
- 4 : "kinetic energy of neutrons"
- 5 : "kinetic energy of protons"
- 6 : "kinetic energy of deuterons"
- 7 : "kinetic energy of alphas"
- 8 : "kinetic energy of nuclei"
- 9 : "kinetic energy of mesons"
- 10 : "kinetic energy of baryons"
- 11 : "Q = Ekin out - Ekin in"
- 12 : "Pbalance = mag(P_out - P_in)"
- 13 : "atomic mass of nuclei"
The histograms are managed by the HistoManager class and its Messenger.
The histos can be individually activated with the command :
@@ -0,0 +1,13 @@
#
# Macro file for "Hadr03.cc"
#
/testhadr/det/setIsotopeMat Au195 79 195 19.30 g/cm3
/testhadr/det/setSize 100 m
#
/run/initialize
#
/gun/particle neutron
/gun/energy 1 eV
#
/run/printProgress 10000
/run/beamOn 100000
+11
View File
@@ -12,6 +12,17 @@ track of all tags.
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
04-06-20 mma (exhadr03-V10-06-02)
- HistoManager, SteppingAction : add plot of e-
04-05-20 mma (exhadr03-V10-06-01)
- GammaNuclearPhysics : add G4LowEGammaNuclearModel
- add GammaNuclearPhysicsLEND
- modify gamma.mac; add Au196.mac
30-04-20 mma (exhadr03-V10-06-00)
- PhysicsList : add G4HadronPhysicsQGSP_BIC, Shielding, RadioactiveDecay
03-10-18 mma (exhadr03-V10-04-06)
- PhysicsList : add G4HadronElasticPhysicsXS
+12 -11
View File
@@ -79,18 +79,19 @@
where unit is the desired unit for the histo (MeV or keV, etc..)
(see the macros xxxx.mac).
1 "kinetic energy of scattered primary particle"
1 "kinetic energy of scattered primary particle"
2 "kinetic energy of gamma"
3 "kinetic energy of neutrons"
4 "kinetic energy of protons"
5 "kinetic energy of deuterons"
6 "kinetic energy of alphas"
7 "kinetic energy of nuclei"
8 "kinetic energy of mesons"
9 "kinetic energy of baryons"
10 "Q = Ekin out - Ekin in"
11 "Pbalance = mag(P_out - P_in)"
12 "atomic mass of nuclei"
3 "kinetic energy of e-"
4 "kinetic energy of neutrons"
5 "kinetic energy of protons"
6 "kinetic energy of deuterons"
7 "kinetic energy of alphas"
8 "kinetic energy of nuclei"
9 "kinetic energy of mesons"
10 "kinetic energy of baryons"
11 "Q = Ekin out - Ekin in"
12 "Pbalance = mag(P_out - P_in)"
13 "atomic mass of nuclei"
The histograms are managed by the HistoManager class and its Messenger.
The histos can be individually activated with the command :
@@ -1,8 +1,5 @@
#
# Macro file for "Hadr03.cc"
# (can be run in batch, without graphic)
#
# proton 10 MeV; all processes
#
/control/verbose 2
/run/verbose 2
@@ -22,12 +19,11 @@
#
/analysis/setFileName elastic
/analysis/h1/set 1 100 9. 11 MeV # scaterred proton
/analysis/h1/set 7 100 0. 50 keV #recoil nuclei
/analysis/h1/set 10 100 -700. 10 eV #Q
/analysis/h1/set 11 100 0. 15 MeV #Pbalance
/analysis/h1/set 8 100 0. 50 keV #recoil nuclei
/analysis/h1/set 11 100 -700. 10 eV #Q
/analysis/h1/set 12 100 0. 15 MeV #Pbalance
#
/run/printProgress 1000
#
/run/beamOn 10000
+6 -8
View File
@@ -1,11 +1,10 @@
#
# Macro file for "Hadr14.cc"
# (can be run in batch, without graphic)
# Macro file for "Hadr03.cc"
#
/control/verbose 2
/run/verbose 2
#
/testhadr/det/setMat Molybdenum98
/testhadr/det/setIsotopeMat Au196 79 196 19.30 g/cm3
/testhadr/det/setSize 100 m
#
/run/initialize
@@ -14,9 +13,8 @@
/gun/energy 10 MeV
#
/analysis/setFileName gamma
/analysis/h1/set 7 100 -1. 30 keV #nuclei
/analysis/h1/set 10 100 -10. 1 MeV #Q
/analysis/h1/set 2 150 0. 10. MeV #gamma
/analysis/h1/set 4 150 0. 3. MeV #neutrons
#
/run/printProgress 1000
#
/run/beamOn 1000
/run/printProgress 10000
/run/beamOn 100000
+104 -46
View File
@@ -4,7 +4,7 @@
############################################
**************************************************************
Geant4 version Name: geant4-10-06-patch-02 (29-May-2020)
Geant4 version Name: geant4-10-06-ref-06 (26-June-2020)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -37,18 +37,30 @@ Command is ignored.
NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Capture/CrossSection/6_nat_Carbon
NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Elastic/CrossSection/6_nat_Carbon
NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Inelastic/CrossSection/6_nat_Carbon
### === Deexcitation model UAtomDeexcitation is activated for 1 region:
### === Auger cascade flag: 1
### === Ignore cuts flag: 0
#
/process/list
Transportation, hadElastic, neutronInelastic, nCapture
nFission, protonInelastic, pi+Inelastic, pi-Inelastic
kaon+Inelastic, kaon-Inelastic, kaon0LInelastic, kaon0SInelastic
lambdaInelastic,anti-lambdaInelastic, sigma-Inelastic,anti_sigma-Inelastic
sigma+Inelastic,anti_sigma+Inelastic, xi-Inelastic, anti_xi-Inelastic
xi0Inelastic, anti_xi0Inelastic, omega-Inelastic,anti_omega-Inelastic
anti_protonInelastic,anti_neutronInelastic,anti_deuteronInelastic,anti_tritonInelastic
anti_He3Inelastic,anti_alphaInelastic, ionElastic, dInelastic
tInelastic, He3Inelastic, alphaInelastic, ionInelastic
photonNuclear
Transportation, hadElastic, hadElastic, hadElastic
hadElastic, hadElastic, hadElastic, hadElastic
hadElastic, hadElastic, hadElastic, hadElastic
hadElastic, hadElastic, hadElastic, hadElastic
hadElastic, hadElastic, hadElastic, hadElastic
hadElastic, hadElastic, hadElastic, hadElastic
hadElastic, hadElastic, hadElastic, hadElastic
hadElastic, hadElastic, hadElastic, hadElastic
hadElastic, neutronInelastic, nCapture, nFission
protonInelastic, pi+Inelastic, pi-Inelastic, kaon+Inelastic
kaon-Inelastic, kaon0LInelastic, kaon0SInelastic, lambdaInelastic
anti-lambdaInelastic, sigma-Inelastic,anti_sigma-Inelastic, sigma+Inelastic
anti_sigma+Inelastic, xi-Inelastic, anti_xi-Inelastic, xi0Inelastic
anti_xi0Inelastic, omega-Inelastic,anti_omega-Inelastic,anti_protonInelastic
anti_neutronInelastic,anti_deuteronInelastic,anti_tritonInelastic, anti_He3Inelastic
anti_alphaInelastic, ionElastic, dInelastic, tInelastic
He3Inelastic, alphaInelastic, ionInelastic, photonNuclear
RadioactiveDecayBase
#
/gun/particle proton
/gun/energy 10 MeV
@@ -56,6 +68,20 @@ anti_protonInelastic,anti_neutronInelastic,anti_deuteronInelastic,anti_tritonIne
/run/printProgress 1000
#
/run/beamOn 10000
======================================================================
====== Radioactive Decay Physics Parameters =======
======================================================================
Max life time 1.4427e+06 ps
Internal e- conversion flag 1
Stored internal conversion coefficients 1
Enable correlated gamma emission 0
Max 2J for sampling of angular correlations 10
Atomic de-excitation enabled 1
Auger electron emission enabled 1
Auger cascade enabled 1
Check EM cuts disabled for atomic de-excitation 0
Use Bearden atomic level energies 0
======================================================================
NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Capture/CrossSection/6_nat_Carbon
NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Elastic/CrossSection/6_nat_Carbon
NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Inelastic/CrossSection/6_nat_Carbon
@@ -78,12 +104,14 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
Process: RadioactiveDecayBase
---------------------------------------------------
Hadronic Processes for He3
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: He3Inelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
@@ -95,7 +123,7 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: alphaInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
@@ -108,11 +136,13 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_He3Inelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
Model: FTFP: 0 eV /n ---> 25 GeV/n
Model: FTFP: 12 GeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for anti_alpha
@@ -120,11 +150,13 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_alphaInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
Model: FTFP: 0 eV /n ---> 25 GeV/n
Model: FTFP: 12 GeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for anti_deuteron
@@ -132,11 +164,13 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_deuteronInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
Model: FTFP: 0 eV /n ---> 25 GeV/n
Model: FTFP: 12 GeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for anti_neutron
@@ -144,11 +178,13 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
Model: AntiAElastic: 100 MeV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_neutronInelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
Model: FTFP: 0 eV ---> 25 GeV
Model: QGSP: 12 GeV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for anti_proton
@@ -156,11 +192,13 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
Model: AntiAElastic: 100 MeV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_protonInelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
Model: FTFP: 0 eV ---> 25 GeV
Model: QGSP: 12 GeV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for anti_triton
@@ -168,18 +206,20 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_tritonInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
Model: FTFP: 0 eV /n ---> 25 GeV/n
Model: FTFP: 12 GeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for deuteron
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: dInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
@@ -190,7 +230,8 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /
Hadronic Processes for gamma
Process: photonNuclear
Model: BertiniCascade: 0 eV ---> 10 GeV
Model: GammaNPreco: 0 eV ---> 200 MeV
Model: BertiniCascade: 199 MeV ---> 10 GeV
Cr_sctns: PhotoNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
@@ -228,7 +269,9 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /
Process: lambdaInelastic
Model: BertiniCascade: 0 eV ---> 6 GeV
Model: FTFP: 3 GeV ---> 100 TeV
Model: FTFP: 3 GeV ---> 25 GeV
Model: QGSP: 12 GeV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
@@ -246,7 +289,7 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /
Model: Binary Cascade: 19.9 MeV ---> 6 GeV
Model: NeutronHPInelastic: 0 eV ---> 20 MeV
Cr_sctns: NeutronHPInelasticXS: 0 eV ---> 20 MeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
Process: nCapture
Model: NeutronHPCapture: 0 eV ---> 20 MeV
@@ -299,12 +342,26 @@ NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /
Model: Binary Cascade: 0 eV ---> 6 GeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for sigma-
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: sigma-Inelastic
Model: BertiniCascade: 0 eV ---> 6 GeV
Model: FTFP: 3 GeV ---> 25 GeV
Model: QGSP: 12 GeV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for triton
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: tInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
@@ -328,25 +385,26 @@ Limit excitation energy for Fermi BreakUp (MeV) 20
Level density (1/MeV) 0.075
Use simple level density model 1
Use discrete excitation energy of the residual 0
Time limit for long lived isomeres (ns) 1000
Time limit for long lived isomeres (ns) 1442.7
Isomer production flag 1
Internal e- conversion flag 1
Store e- internal conversion data 0
Store e- internal conversion data 1
Electron internal conversion ID 0
Correlated gamma emission flag 0
Max 2J for sampling of angular correlations 10
Upload data before 1st event for Z < 9
=======================================================================
========= Table of registered couples ==============================
========= Table of registered couples ============================
Index : 0 used in the geometry : Yes
Material : Molybdenum98
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 0 fm
Energy thresholds : gamma 42.9443 keV e- 1.44302 MeV e+ 1.36749 MeV proton 0 eV
Energy thresholds : gamma 42.9817 keV e- 1.43711 MeV e+ 1.35304 MeV proton 0 eV
Region(s) which use this couple :
DefaultRegionForTheWorld
====================================================================
==================================================================
### Run 0 starts.
@@ -367,7 +425,7 @@ Index : 0 used in the geometry : Yes
Run terminated.
Run Summary
Number of events processed : 10000
User=0.130000s Real=0.145841s Sys=0.000000s
User=0.280000s Real=0.299211s Sys=0.010000s
The run is 10000 proton of 10 MeV through 10 m of Molybdenum98 (density: 10.28 g/cm3 )
@@ -388,7 +446,7 @@ Run Summary
proton + Mo98 --> N gamma or e- + Tc99: 1 Q = 6.4945 MeV
proton + Mo98 --> N gamma or e- + Tc99[142.683]: 1 Q = 6.3518 MeV
proton + Mo98 --> N gamma or e- + neutron + Tc98: 1873 Q = -2.4725 MeV
proton + Mo98 --> N gamma or e- + neutron + Tc98: 1873 Q = -2.4771 MeV
proton + Mo98 --> N gamma or e- + proton + Mo98: 13 Q = -9.3784e-06 eV
proton + Mo98 --> proton + Mo98: 8112 Q = -5.6975e-06 eV
@@ -396,15 +454,15 @@ Run Summary
List of generated particles:
Mo98: 8125 Emean = 32.474 keV ( 5.4473 eV --> 405.17 keV)
Tc98: 1873 Emean = 120.07 keV ( 7.7509 keV --> 296.85 keV)
Tc98: 1873 Emean = 120.07 keV ( 7.7509 keV --> 296.88 keV)
Tc99: 1 Emean = 88.079 keV ( 88.079 keV --> 88.079 keV)
Tc99[142.683]: 1 Emean = 93.139 keV ( 93.139 keV --> 93.139 keV)
e-: 506 Emean = 137.72 keV ( 21.527 keV --> 3.8124 MeV)
e-: 506 Emean = 120.82 keV ( 18.601 keV --> 3.7913 MeV)
gamma: 12667 Emean = 851.55 keV ( 21.805 keV --> 12.228 MeV)
neutron: 1873 Emean = 1.6433 MeV ( 48.681 keV --> 6.3995 MeV)
proton: 13 Emean = 7.7097 MeV ( 5.5275 MeV --> 9.3462 MeV)
Momentum balance: Pmean = 40.875 eV ( 2.861e-07 eV --> 2.3689 keV)
Momentum balance: Pmean = 39.514 eV ( 2.861e-07 eV --> 2.3135 keV)
--------- Ranecu engine status ---------
@@ -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 hadronic/Hadr03/include/GammaNuclearPhysicsLEND.hh
/// \brief Definition of the GammaNuclearPhysics class
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef GammaNuclearPhysicsLEND_h
#define GammaNuclearPhysicsLEND_h 1
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class GammaNuclearPhysicsLEND : public G4VPhysicsConstructor
{
public:
GammaNuclearPhysicsLEND(const G4String& name="gamma");
~GammaNuclearPhysicsLEND();
public:
virtual void ConstructParticle() { };
virtual void ConstructProcess();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -1,8 +1,5 @@
#
# Macro file for "Hadr03.cc"
# (can be run in batch, without graphic)
#
# proton 10 MeV; all processes
#
/control/verbose 2
/run/verbose 2
@@ -19,9 +16,8 @@
#
/analysis/setFileName inelastic
/analysis/h1/set 2 100 0. 8000 keV #gamma
/analysis/h1/set 7 100 0. 400 keV #nuclei
/analysis/h1/set 10 100 -10 +0 MeV #Q
/analysis/h1/set 8 100 0. 400 keV #nuclei
/analysis/h1/set 11 100 -10 +0 MeV #Q
#
/run/printProgress 1000
#
/run/beamOn 10000
@@ -1,6 +1,5 @@
#
# Macro file for "Hadr03.cc"
# (can be run in batch, without graphic)
#
/control/verbose 2
/run/verbose 2
@@ -22,10 +21,9 @@
#
/analysis/setFileName nCapture
/analysis/h1/set 2 100 0. 15 MeV #gamma
/analysis/h1/set 7 100 0. 70 keV #nuclei
/analysis/h1/set 10 100 0. 70 MeV #Q
/analysis/h1/set 11 100 0. 15 MeV #Pbalance
/analysis/h1/set 8 100 0. 70 keV #nuclei
/analysis/h1/set 11 100 0. 70 MeV #Q
/analysis/h1/set 12 100 0. 15 MeV #Pbalance
#
/run/printProgress 10000
#
/run/beamOn 100000
@@ -22,10 +22,10 @@
#
/analysis/setFileName nFission
/analysis/h1/set 2 100 0 10 MeV #gamma
/analysis/h1/set 3 100 0 10 MeV #neutron
/analysis/h1/set 7 100 0 150 MeV #nuclei
/analysis/h1/set 10 100 150 250 MeV #Q
/analysis/h1/set 12 200 1 200 none #A
/analysis/h1/set 4 100 0 10 MeV #neutron
/analysis/h1/set 8 100 0 150 MeV #nuclei
/analysis/h1/set 11 100 150 250 MeV #Q
/analysis/h1/set 13 200 1 200 none #A
#
/run/printProgress 1000
/testhadr/run/printStat false
@@ -1,6 +1,5 @@
#
# Macro file for "Hadr03.cc"
# (can be run in batch, without graphic)
#
/control/verbose 2
/run/verbose 2
@@ -19,11 +18,10 @@
#
/analysis/setFileName neutron
/analysis/h1/set 2 100 0. 1000 keV #gamma
/analysis/h1/set 6 100 0. 3000 keV #alpha
/analysis/h1/set 7 100 0. 2000 keV #nuclei
/analysis/h1/set 10 100 0. 3000 keV #Q
/analysis/h1/set 11 100 0. 100 keV #Pbalance
/analysis/h1/set 7 100 0. 3000 keV #alpha
/analysis/h1/set 8 100 0. 2000 keV #nuclei
/analysis/h1/set 11 100 0. 3000 keV #Q
/analysis/h1/set 12 100 0. 100 keV #Pbalance
#
/run/printProgress 10000
#
/run/beamOn 100000
@@ -38,6 +38,7 @@
// Processes
#include "G4PhotoNuclearProcess.hh"
#include "G4LowEGammaNuclearModel.hh"
#include "G4CascadeInterface.hh"
#include "G4SystemOfUnits.hh"
@@ -57,14 +58,26 @@ GammaNuclearPhysics::~GammaNuclearPhysics()
void GammaNuclearPhysics::ConstructProcess()
{
G4ProcessManager* pManager = G4Gamma::Gamma()->GetProcessManager();
//
G4PhotoNuclearProcess* process = new G4PhotoNuclearProcess();
//
G4CascadeInterface* bertini = new G4CascadeInterface();
bertini->SetMaxEnergy(10*GeV);
process->RegisterMe(bertini);
//
// to not register a model, set Emax=0; eg. Emax1 = 0.
const G4double Emax1 = 200*MeV, Emax2 = 10*GeV;
if (Emax1 > 0.) { // model 1
G4LowEGammaNuclearModel* model1 = new G4LowEGammaNuclearModel();
model1->SetMaxEnergy(Emax1);
process->RegisterMe(model1);
}
if (Emax2 > 0.) { // model 2
G4CascadeInterface* model2 = new G4CascadeInterface();
G4double Emin2 = std::max(Emax1-1*MeV, 0.);
model2->SetMinEnergy(Emin2);
model2->SetMaxEnergy(Emax2);
process->RegisterMe(model2);
}
G4ProcessManager* pManager = G4Gamma::Gamma()->GetProcessManager();
pManager->AddDiscreteProcess(process);
}
@@ -0,0 +1,76 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on 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/GammaNuclearPhysicsLEND.cc
/// \brief Implementation of the GammaNuclearPhysicsLEND class
//
// $Id: GammaNuclearPhysics.cc 66587 2012-12-21 11:06:44Z ihrivnac $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "GammaNuclearPhysicsLEND.hh"
#include "G4ParticleDefinition.hh"
#include "G4ProcessManager.hh"
// Processes
#include "G4PhotoNuclearProcess.hh"
#include "G4LENDorBERTModel.hh"
#include "G4LENDCombinedCrossSection.hh"
#include "G4SystemOfUnits.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
GammaNuclearPhysicsLEND::GammaNuclearPhysicsLEND(const G4String& name)
: G4VPhysicsConstructor(name)
{ }
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
GammaNuclearPhysicsLEND::~GammaNuclearPhysicsLEND()
{ }
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void GammaNuclearPhysicsLEND::ConstructProcess()
{
G4ProcessManager* pManager = G4Gamma::Gamma()->GetProcessManager();
//
G4PhotoNuclearProcess* process = new G4PhotoNuclearProcess();
//
G4LENDorBERTModel* lend = new G4LENDorBERTModel(G4Gamma::Gamma());
lend->SetMaxEnergy(20*MeV);
process->RegisterMe(lend);
//
G4LENDCombinedCrossSection* lendXS = new G4LENDCombinedCrossSection(G4Gamma::Gamma());
process->AddDataSet(lendXS);
//
pManager->AddDiscreteProcess(process);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -61,23 +61,24 @@ void HistoManager::Book()
analysisManager->SetActivation(true); //enable inactivation of histograms
// Define histograms start values
const G4int kMaxHisto = 13;
const G4int kMaxHisto = 14;
const G4String id[] = {"0","1","2","3","4","5","6","7","8","9",
"10","11","12"};
"10","11","12","13"};
const G4String title[] =
{ "dummy", //0
"kinetic energy of scattered primary particle", //1
"kinetic energy of gamma", //2
"kinetic energy of neutrons", //3
"kinetic energy of protons", //4
"kinetic energy of deuterons", //5
"kinetic energy of alphas", //6
"kinetic energy of nuclei", //7
"kinetic energy of mesons", //8
"kinetic energy of baryons", //9
"Q = Ekin out - Ekin in", //10
"Pbalance = mag(P_out - P_in)", //11
"atomic mass of nuclei" //12
"kinetic energy of electrons", //3
"kinetic energy of neutrons", //4
"kinetic energy of protons", //5
"kinetic energy of deuterons", //6
"kinetic energy of alphas", //7
"kinetic energy of nuclei", //8
"kinetic energy of mesons", //9
"kinetic energy of baryons", //10
"Q = Ekin out - Ekin in", //11
"Pbalance = mag(P_out - P_in)", //12
"atomic mass of nuclei" //13
};
// Default values (to be reset via /analysis/h1/set command)
@@ -40,8 +40,10 @@
#include "G4HadronPhysicsFTFP_BERT_HP.hh"
#include "G4HadronPhysicsQGSP_BIC_HP.hh"
#include "G4HadronPhysicsQGSP_BIC_AllHP.hh"
#include "G4HadronPhysicsQGSP_BIC.hh"
#include "G4HadronInelasticQBBC.hh"
#include "G4HadronPhysicsINCLXX.hh"
#include "G4HadronPhysicsShielding.hh"
#include "G4IonElasticPhysics.hh"
#include "G4IonPhysicsXS.hh"
@@ -50,6 +52,7 @@
#include "G4IonINCLXXPhysics.hh"
#include "GammaNuclearPhysics.hh"
#include "G4RadioactiveDecayPhysics.hh"
// particles
@@ -84,9 +87,11 @@ PhysicsList::PhysicsList()
////RegisterPhysics( new G4HadronPhysicsFTFP_BERT_HP(verb));
RegisterPhysics( new G4HadronPhysicsQGSP_BIC_HP(verb));
////RegisterPhysics( new G4HadronPhysicsQGSP_BIC_AllHP(verb));
////RegisterPhysics( new G4HadronPhysicsQGSP_BIC(verb));
////RegisterPhysics( new G4HadronInelasticQBBC(verb));
////RegisterPhysics( new G4HadronPhysicsINCLXX(verb));
////RegisterPhysics( new G4HadronPhysicsShielding(verb));
// Ion Elastic scattering
//
RegisterPhysics( new G4IonElasticPhysics(verb));
@@ -101,7 +106,9 @@ PhysicsList::PhysicsList()
// Gamma physics
//
RegisterPhysics( new GammaNuclearPhysics("gamma"));
// Radioactive decay
RegisterPhysics(new G4RadioactiveDecayPhysics());
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -120,18 +120,19 @@ void SteppingAction::UserSteppingAction(const G4Step* aStep)
//energy spectrum
ih = 0;
if (particle == G4Gamma::Gamma()) ih = 2;
else if (particle == G4Neutron::Neutron()) ih = 3;
else if (particle == G4Proton::Proton()) ih = 4;
else if (particle == G4Deuteron::Deuteron()) ih = 5;
else if (particle == G4Alpha::Alpha()) ih = 6;
else if (type == "nucleus") ih = 7;
else if (type == "meson") ih = 8;
else if (type == "baryon") ih = 9;
else if (particle == G4Electron::Electron()) ih = 3;
else if (particle == G4Neutron::Neutron()) ih = 4;
else if (particle == G4Proton::Proton()) ih = 5;
else if (particle == G4Deuteron::Deuteron()) ih = 6;
else if (particle == G4Alpha::Alpha()) ih = 7;
else if (type == "nucleus") ih = 8;
else if (type == "meson") ih = 9;
else if (type == "baryon") ih = 10;
if (ih > 0) analysis->FillH1(ih,energy);
//atomic mass
if (type == "nucleus") {
G4int A = particle->GetAtomicMass();
analysis->FillH1(12, A);
analysis->FillH1(13, A);
}
//energy-momentum balance
G4ThreeVector momentum = (*secondary)[lp]->GetMomentum();
@@ -146,9 +147,9 @@ void SteppingAction::UserSteppingAction(const G4Step* aStep)
//energy-momentum balance
G4double Pbal = Pbalance.mag();
run->Balance(Pbal);
ih = 10;
analysis->FillH1(ih,Q);
ih = 11;
analysis->FillH1(ih,Q);
ih = 12;
analysis->FillH1(ih,Pbal);
// nuclear channel