Import Geant4 11.0.0.beta source tree
This commit is contained in:
@@ -50,9 +50,6 @@
|
||||
GammmaNuclearPhysics is a subset of G4BertiniElectroNuclearBuilder.
|
||||
|
||||
ElectromagneticPhysics is a simplified version of G4EmStandardPhysics.
|
||||
In perticular, no step constraint is imposed for energy loss mechanism (ionisation and brems).
|
||||
This is enough when spatial distribution of deposited energy do not need
|
||||
to be accurate (see param->SetStepFunction(1., 1*mm)).
|
||||
|
||||
In PhysicsList::ConstructProcess() we give an example of how to access hadronic models.
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup the project
|
||||
cmake_minimum_required(VERSION 3.8...3.18)
|
||||
if(${CMAKE_VERSION} VERSION_LESS 3.12)
|
||||
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
|
||||
endif()
|
||||
cmake_minimum_required(VERSION 3.12...3.20)
|
||||
project(NeutronSource)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
@@ -13,6 +13,34 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
22-06-21 G. Cosmo (NeutronSource-V10-07-06)
|
||||
- Use new CLHEP units for minute, hour, day, year and millielectronvolt
|
||||
in PhysicsList.
|
||||
|
||||
14-04-21 mma (NeutronSource-V10-07-05)
|
||||
- NeutronSource.cc: RunManagerFactory
|
||||
G4SteppingVerboseWithUnits
|
||||
ParticleHP env variables
|
||||
- ActionInitialization.hh and cc: remove SteppingVerbose class
|
||||
|
||||
04-03-21 A. Ribon (NeutronSource-V10-07-04)
|
||||
- GammaNuclearPhysics, GammaNuclearPhysicsLEND : replaced
|
||||
G4PhotoNuclearProcess (that has been deleted) with
|
||||
G4HadronInelasticProcess.
|
||||
|
||||
29-01-21 mma (NeutronSource-V10-07-03)
|
||||
- TrackingAction, Run: print meanLife
|
||||
- PhysicsList: add new units for time
|
||||
|
||||
15-01-21 mma (NeutronSource-V10-07-02)
|
||||
- TrackingAction: count secondary particles with meanLife > 0.
|
||||
|
||||
05-01-21 mma (NeutronSource-V10-07-01)
|
||||
- PhysicsList: add GammaNuclearPhysicsLEND
|
||||
|
||||
01-01-21 mma (NeutronSource-V10-07-00)
|
||||
- update ElectromagneticPhysics
|
||||
|
||||
25-10-20 mma (NeutronSource-V10-06-02)
|
||||
- README : add macros descrption
|
||||
|
||||
|
||||
@@ -30,21 +30,16 @@
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4Types.hh"
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
#include "G4MTRunManager.hh"
|
||||
#else
|
||||
#include "G4RunManager.hh"
|
||||
#endif
|
||||
|
||||
#include "G4RunManagerFactory.hh"
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4SteppingVerbose.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
#include "DetectorConstruction.hh"
|
||||
#include "PhysicsList.hh"
|
||||
#include "ActionInitialization.hh"
|
||||
#include "SteppingVerbose.hh"
|
||||
|
||||
#include "G4UIExecutive.hh"
|
||||
#include "G4VisExecutive.hh"
|
||||
@@ -61,18 +56,17 @@ 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
|
||||
|
||||
//use G4SteppingVerboseWithUnits
|
||||
G4int precision = 4;
|
||||
G4SteppingVerbose::UseBestUnit(precision);
|
||||
|
||||
//construct the run manager
|
||||
auto runManager = G4RunManagerFactory::CreateRunManager();
|
||||
if (argc==3) {
|
||||
G4int nThreads = G4UIcommand::ConvertToInt(argv[2]);
|
||||
runManager->SetNumberOfThreads(nThreads);
|
||||
}
|
||||
|
||||
//set mandatory initialization classes
|
||||
DetectorConstruction* det= new DetectorConstruction;
|
||||
@@ -84,20 +78,13 @@ int main(int argc,char** argv) {
|
||||
|
||||
// Replaced HP environmental variables with C++ calls
|
||||
G4ParticleHPManager::GetInstance()->SetSkipMissingIsotopes( false );
|
||||
G4ParticleHPManager::GetInstance()->SetDoNotAdjustFinalState( false );
|
||||
G4ParticleHPManager::GetInstance()->SetUseOnlyPhotoEvaporation( false );
|
||||
G4ParticleHPManager::GetInstance()->SetDoNotAdjustFinalState( true );
|
||||
G4ParticleHPManager::GetInstance()->SetUseOnlyPhotoEvaporation( true );
|
||||
G4ParticleHPManager::GetInstance()->SetNeglectDoppler( false );
|
||||
G4ParticleHPManager::GetInstance()->SetProduceFissionFragments( false );
|
||||
G4ParticleHPManager::GetInstance()->SetUseWendtFissionModel( false );
|
||||
G4ParticleHPManager::GetInstance()->SetUseNRESP71Model( false );
|
||||
//G4ParticleHPManager::GetInstance()->SetSkipMissingIsotopes( true );
|
||||
//G4ParticleHPManager::GetInstance()->SetDoNotAdjustFinalState( true );
|
||||
//G4ParticleHPManager::GetInstance()->SetUseOnlyPhotoEvaporation( true );
|
||||
//G4ParticleHPManager::GetInstance()->SetNeglectDoppler( true );
|
||||
//G4ParticleHPManager::GetInstance()->SetProduceFissionFragments( true );
|
||||
//G4ParticleHPManager::GetInstance()->SetUseWendtFissionModel( true );
|
||||
//G4ParticleHPManager::GetInstance()->SetUseNRESP71Model( true );
|
||||
|
||||
|
||||
//initialize visualization
|
||||
G4VisManager* visManager = nullptr;
|
||||
|
||||
|
||||
@@ -1,10 +1,17 @@
|
||||
Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type...
|
||||
|
||||
############################################
|
||||
!!! WARNING - FPE detection is activated !!!
|
||||
############################################
|
||||
|
||||
|
||||
################################
|
||||
!!! G4Backtrace is activated !!!
|
||||
################################
|
||||
|
||||
|
||||
**************************************************************
|
||||
Geant4 version Name: geant4-10-07-patch-02 (11-June-2021)
|
||||
Geant4 version Name: geant4-10-07-ref-06 (25-June-2021)
|
||||
Copyright : Geant4 Collaboration
|
||||
References : NIM A 506 (2003), 250-303
|
||||
: IEEE-TNS 53 (2006), 270-278
|
||||
@@ -20,6 +27,9 @@
|
||||
##/testhadr/det/setAbsorLength 60 mm
|
||||
##/testhadr/det/setContThick 2.4 mm
|
||||
#
|
||||
/process/em/verbose 0
|
||||
/process/had/verbose 1
|
||||
#
|
||||
/run/initialize
|
||||
|
||||
The Absorber is a cylinder of BeO radius = 1.5 cm length = 6 cm
|
||||
@@ -93,15 +103,16 @@ Auger electron emission enabled 1
|
||||
Auger cascade enabled 1
|
||||
Check EM cuts disabled for atomic de-excitation 1
|
||||
Use Bearden atomic level energies 0
|
||||
Threshold for very long decay time at rest 1e+27 ns
|
||||
======================================================================
|
||||
|
||||
=======================================================
|
||||
====== ParticleHP Physics Parameters ========
|
||||
=======================================================
|
||||
UseOnlyPhotoEvaporation ? 0
|
||||
UseOnlyPhotoEvaporation ? 1
|
||||
SkipMissingIsotopes ? 0
|
||||
NeglectDoppler ? 0
|
||||
DoNotAdjustFinalState ? 0
|
||||
DoNotAdjustFinalState ? 1
|
||||
ProduceFissionFragments ? 0
|
||||
UseWendtFissionModel ? 0
|
||||
UseNRESP71Model ? 0
|
||||
@@ -320,7 +331,7 @@ Use Bearden atomic level energies 0
|
||||
Model: NeutronHPFission: 0 meV ---> 20 MeV
|
||||
Model: G4LFission: 19.9 MeV ---> 100 TeV
|
||||
Cr_sctns: NeutronHPFissionXS: 0 meV ---> 20 MeV
|
||||
Cr_sctns: GheishaFissionXS: 0 meV ---> 100 TeV
|
||||
Cr_sctns: ZeroXS: 0 meV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi+
|
||||
@@ -456,210 +467,59 @@ Index : 2 used in the geometry : Yes
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 10000
|
||||
User=9.570000s Real=12.752483s Sys=0.030000s
|
||||
User=7.770000s Real=8.478907s Sys=0.030000s
|
||||
|
||||
The run is 10000 Am241 of 0 meV within BeO (D = 3 cm L = 6 cm )
|
||||
|
||||
Process calls frequency :
|
||||
RadioactiveDecayBase= 234968 Transportation= 190593 alphaInelastic= 13
|
||||
annihil= 1 compt= 35785 conv= 1
|
||||
eIoni=1276609 ionIoni= 198777 msc= 12689
|
||||
neutronInelastic= 1 phot= 60029
|
||||
RadioactiveDecayBase= 234961 Rayl= 6693 Transportation= 190668
|
||||
alphaInelastic= 5 compt= 35813 eIoni=1273272
|
||||
ionIoni= 198786 msc= 13164 phot= 59755
|
||||
|
||||
|
||||
List of generated particles:
|
||||
Ac225: 9999 Emean = 162.92 meV ( 3.5216 meV --> 1.1268 eV )
|
||||
Ac225[40.090]: 7016 Emean = 376.25 meV ( 0.37835 meV --> 973.58 meV)
|
||||
At217: 9991 Emean = 116.38 keV ( 105.89 keV --> 117.05 keV)
|
||||
At217[100.250]: 148 Emean = 114.57 keV ( 106.48 keV --> 115.23 keV)
|
||||
At217[218.120]: 1533 Emean = 112.98 keV ( 105.83 keV --> 113.09 keV)
|
||||
At217[272.070]: 23 Emean = 111.65 keV ( 110.22 keV --> 112.11 keV)
|
||||
At217[368.230]: 51 Emean = 109.98 keV ( 106.14 keV --> 110.37 keV)
|
||||
At217[382.340]: 5 Emean = 110.11 keV ( 110.11 keV --> 110.11 keV)
|
||||
At217[410.640]: 14 Emean = 109.6 keV ( 109.6 keV --> 109.6 keV)
|
||||
At217[424.350]: 4 Emean = 109.35 keV ( 109.35 keV --> 109.35 keV)
|
||||
At217[537.500]: 1 Emean = 107.3 keV ( 107.3 keV --> 107.3 keV)
|
||||
At217[568.500]: 1 Emean = 106.73 keV ( 106.73 keV --> 106.73 keV)
|
||||
At217[577.000]: 6 Emean = 106.58 keV ( 106.58 keV --> 106.58 keV)
|
||||
Be9: 1 Emean = 1.26 MeV ( 1.26 MeV --> 1.26 MeV)
|
||||
Bi209: 10000 Emean = 1.2274 eV ( 4.482 meV --> 2.7334 eV )
|
||||
Bi213: 9991 Emean = 132.94 keV ( 112.64 keV --> 132.95 keV)
|
||||
Bi213[1050.000]: 1 Emean = 113.55 keV ( 113.55 keV --> 113.55 keV)
|
||||
Bi213[257.870]: 7 Emean = 127.24 keV ( 121.63 keV --> 128.18 keV)
|
||||
Bi213[593.180]: 3 Emean = 121.99 keV ( 121.99 keV --> 121.99 keV)
|
||||
Bi213[758.900]: 1 Emean = 113.26 keV ( 113.26 keV --> 113.26 keV)
|
||||
C12: 8 Emean = 1.1498 MeV ( 192.87 keV --> 2.4914 MeV)
|
||||
Fr221: 10000 Emean = 104.86 keV ( 47.352 meV --> 105.65 keV)
|
||||
Fr221[100.890]: 183 Emean = 102.67 keV ( 94.115 keV --> 103.85 keV)
|
||||
Fr221[108.410]: 442 Emean = 102.94 keV ( 84.285 meV --> 103.72 keV)
|
||||
Fr221[145.910]: 9 Emean = 100.26 keV ( 92.232 keV --> 103.05 keV)
|
||||
Fr221[150.070]: 150 Emean = 102.89 keV ( 100.29 keV --> 102.97 keV)
|
||||
Fr221[195.770]: 433 Emean = 102.13 keV ( 95.327 keV --> 102.16 keV)
|
||||
Fr221[224.640]: 119 Emean = 101.47 keV ( 98.479 keV --> 101.65 keV)
|
||||
Fr221[234.510]: 2 Emean = 101.47 keV ( 101.47 keV --> 101.47 keV)
|
||||
Fr221[253.560]: 118 Emean = 101.11 keV ( 98.603 keV --> 101.13 keV)
|
||||
Fr221[26.000]: 307 Emean = 102.82 keV ( 94.558 keV --> 105.18 keV)
|
||||
Fr221[272.600]: 2 Emean = 100.79 keV ( 100.79 keV --> 100.79 keV)
|
||||
Fr221[279.210]: 12 Emean = 100.51 keV ( 98.682 keV --> 100.67 keV)
|
||||
Fr221[288.080]: 9 Emean = 99.16 keV ( 98.336 keV --> 100.52 keV)
|
||||
Fr221[294.660]: 3 Emean = 66.933 keV ( 1.3718 eV --> 100.4 keV)
|
||||
Fr221[36.640]: 2630 Emean = 104.38 keV ( 148.63 meV --> 105 keV)
|
||||
Fr221[38.540]: 1080 Emean = 104.45 keV ( 98.523 keV --> 104.96 keV)
|
||||
Fr221[393.350]: 11 Emean = 98.641 keV ( 98.641 keV --> 98.641 keV)
|
||||
Fr221[400.750]: 8 Emean = 98.509 keV ( 98.509 keV --> 98.509 keV)
|
||||
Fr221[517.810]: 6 Emean = 96.424 keV ( 96.424 keV --> 96.424 keV)
|
||||
Fr221[552.050]: 18 Emean = 95.814 keV ( 95.814 keV --> 95.814 keV)
|
||||
Fr221[570.810]: 2 Emean = 95.48 keV ( 95.48 keV --> 95.48 keV)
|
||||
Fr221[602.200]: 1 Emean = 94.921 keV ( 94.921 keV --> 94.921 keV)
|
||||
Fr221[630.710]: 4 Emean = 94.413 keV ( 94.413 keV --> 94.413 keV)
|
||||
Fr221[749.160]: 1 Emean = 92.303 keV ( 92.303 keV --> 92.303 keV)
|
||||
Fr221[824.200]: 1 Emean = 90.967 keV ( 90.967 keV --> 90.967 keV)
|
||||
Fr221[99.620]: 913 Emean = 103.64 keV ( 92.388 keV --> 103.87 keV)
|
||||
Fr221[99.850]: 158 Emean = 103.47 keV ( 96.549 keV --> 103.87 keV)
|
||||
Np237: 10000 Emean = 92.568 keV ( 86.705 keV --> 93.678 keV)
|
||||
Np237[102.959]: 1469 Emean = 91.871 keV ( 86.836 keV --> 91.966 keV)
|
||||
Np237[158.497]: 168 Emean = 91.028 keV ( 88.733 keV --> 91.042 keV)
|
||||
Np237[225.957]: 2 Emean = 88.458 keV ( 86.996 keV --> 89.92 keV)
|
||||
Np237[305.050]: 1 Emean = 88.605 keV ( 88.605 keV --> 88.605 keV)
|
||||
Np237[33.196]: 2163 Emean = 92.556 keV ( 86.752 keV --> 93.126 keV)
|
||||
Np237[395.530]: 1 Emean = 87.101 keV ( 87.101 keV --> 87.101 keV)
|
||||
Np237[59.541]: 9942 Emean = 92.563 keV ( 86.732 keV --> 92.688 keV)
|
||||
Np237[75.899]: 4 Emean = 92.416 keV ( 92.416 keV --> 92.416 keV)
|
||||
Pa233: 10000 Emean = 81.95 keV ( 77.276 keV --> 83.776 keV)
|
||||
Pa233[103.635]: 3357 Emean = 81.895 keV ( 77.175 keV --> 82.024 keV)
|
||||
Pa233[109.070]: 1023 Emean = 81.885 keV ( 78.494 keV --> 81.932 keV)
|
||||
Pa233[133.200]: 1 Emean = 81.524 keV ( 81.524 keV --> 81.524 keV)
|
||||
Pa233[163.510]: 119 Emean = 81.011 keV ( 81.011 keV --> 81.011 keV)
|
||||
Pa233[169.166]: 107 Emean = 80.916 keV ( 80.916 keV --> 80.916 keV)
|
||||
Pa233[179.000]: 51 Emean = 80.749 keV ( 80.749 keV --> 80.749 keV)
|
||||
Pa233[201.634]: 103 Emean = 79.719 keV ( 78.597 keV --> 79.881 keV)
|
||||
Pa233[212.341]: 331 Emean = 80.186 keV ( 80.186 keV --> 80.186 keV)
|
||||
Pa233[218.000]: 57 Emean = 80.09 keV ( 80.09 keV --> 80.09 keV)
|
||||
Pa233[237.890]: 646 Emean = 79.726 keV ( 78.543 keV --> 79.754 keV)
|
||||
Pa233[257.183]: 1 Emean = 79.428 keV ( 79.428 keV --> 79.428 keV)
|
||||
Pa233[279.720]: 36 Emean = 79.047 keV ( 79.047 keV --> 79.047 keV)
|
||||
Pa233[283.000]: 9 Emean = 78.991 keV ( 78.991 keV --> 78.991 keV)
|
||||
Pa233[300.500]: 37 Emean = 78.695 keV ( 78.695 keV --> 78.695 keV)
|
||||
Pa233[303.590]: 4 Emean = 78.643 keV ( 78.643 keV --> 78.643 keV)
|
||||
Pa233[365.840]: 4 Emean = 77.591 keV ( 77.591 keV --> 77.591 keV)
|
||||
Pa233[57.100]: 7380 Emean = 81.916 keV ( 77.258 keV --> 82.81 keV)
|
||||
Pa233[6.671]: 317 Emean = 81.681 keV ( 78.419 keV --> 83.663 keV)
|
||||
Pa233[70.544]: 265 Emean = 81.863 keV ( 78.597 keV --> 82.583 keV)
|
||||
Pa233[86.468]: 5624 Emean = 81.937 keV ( 78.415 keV --> 82.314 keV)
|
||||
Pa233[94.646]: 717 Emean = 80.016 keV ( 78.572 keV --> 81.13 keV)
|
||||
Pb209: 10000 Emean = 157.13 keV ( 5.2021 eV --> 160.59 keV)
|
||||
Pb209[1423.000]: 4 Emean = 6.8173 eV ( 6.8173 eV --> 6.8173 eV )
|
||||
Pb209[1567.090]: 211 Emean = 601.02 meV ( 555.82 meV --> 3.5222 eV )
|
||||
Pb209[2032.220]: 209 Emean = 55.102 meV ( 35.303 meV --> 340.14 meV)
|
||||
Pb209[2149.430]: 208 Emean = 7.4452 eV ( 333.38 meV --> 12.997 eV )
|
||||
Pb209[2315.900]: 1 Emean = 10.779 eV ( 10.779 eV --> 10.779 eV )
|
||||
Pb209[2738.000]: 2 Emean = 70.81 meV ( 70.81 meV --> 70.81 meV)
|
||||
Pb209[2904.000]: 2 Emean = 2.4778 eV ( 2.4179 eV --> 2.5377 eV )
|
||||
Pb209[3052.000]: 4 Emean = 0.81491 meV ( 0.81491 meV --> 0.81491 meV)
|
||||
Pb209[3069.920]: 4 Emean = 2.1772 eV ( 116.15 meV --> 4.097 eV )
|
||||
Pb209[3389.090]: 1 Emean = 1.5249 eV ( 1.5249 eV --> 1.5249 eV )
|
||||
Pb209[778.800]: 1 Emean = 145.92 keV ( 145.92 keV --> 145.92 keV)
|
||||
Po213: 9785 Emean = 137.24 eV ( 26.63 meV --> 145.62 keV)
|
||||
Po213[1003.553]: 8 Emean = 528.27 meV ( 156.43 meV --> 1.117 eV )
|
||||
Po213[1045.670]: 3 Emean = 615.11 meV ( 291.33 meV --> 948.29 meV)
|
||||
Po213[1100.167]: 70 Emean = 379.4 meV ( 61.555 meV --> 907.25 meV)
|
||||
Po213[1119.291]: 6 Emean = 433.91 meV ( 117.38 meV --> 927.36 meV)
|
||||
Po213[292.800]: 78 Emean = 2.185 eV ( 54.948 meV --> 5.6422 eV )
|
||||
Po213[440.450]: 3058 Emean = 2.4247 eV ( 12.515 meV --> 4.9019 eV )
|
||||
Po213[600.730]: 1 Emean = 893.6 meV ( 893.6 meV --> 893.6 meV)
|
||||
Po213[867.980]: 1 Emean = 1.1183 eV ( 1.1183 eV --> 1.1183 eV )
|
||||
Ra221: 9 Emean = 335.41 meV ( 39.261 meV --> 630.91 meV)
|
||||
Ra225: 10000 Emean = 96.712 keV ( 16.997 meV --> 338.53 keV)
|
||||
Ra225[100.500]: 2822 Emean = 96.92 keV ( 15.396 meV --> 338.98 keV)
|
||||
Ra225[111.600]: 2217 Emean = 96.354 keV ( 51.572 meV --> 336.16 keV)
|
||||
Ra225[120.360]: 32 Emean = 90.956 keV ( 14.096 keV --> 315.09 keV)
|
||||
Ra225[149.960]: 2404 Emean = 95.943 keV ( 35.478 meV --> 334.76 keV)
|
||||
Ra225[179.750]: 1671 Emean = 96.803 keV ( 421.17 eV --> 337.22 keV)
|
||||
Ra225[203.500]: 3 Emean = 86.805 keV ( 86.805 keV --> 86.805 keV)
|
||||
Ra225[215.800]: 1 Emean = 86.59 keV ( 86.59 keV --> 86.59 keV)
|
||||
Ra225[220.550]: 79 Emean = 108.32 keV ( 30.514 keV --> 323.92 keV)
|
||||
Ra225[225.200]: 3 Emean = 83.034 keV ( 79.862 keV --> 84.623 keV)
|
||||
Ra225[226.900]: 19 Emean = 87.121 keV ( 50.231 keV --> 175.22 keV)
|
||||
Ra225[236.250]: 5989 Emean = 95.765 keV ( 563.47 eV --> 335.84 keV)
|
||||
Ra225[243.560]: 540 Emean = 98.523 keV ( 2.9721 keV --> 335.86 keV)
|
||||
Ra225[248.500]: 22 Emean = 91.537 keV ( 86.018 keV --> 207.43 keV)
|
||||
Ra225[25.410]: 8057 Emean = 96.511 keV ( 30.937 meV --> 338.67 keV)
|
||||
Ra225[267.920]: 898 Emean = 95.498 keV ( 1.3699 keV --> 333.26 keV)
|
||||
Ra225[272.150]: 41 Emean = 90.157 keV ( 6.0311 keV --> 311.56 keV)
|
||||
Ra225[284.490]: 126 Emean = 95.313 keV ( 577.21 eV --> 315.22 keV)
|
||||
Ra225[293.000]: 2 Emean = 83.469 keV ( 83.467 keV --> 83.47 keV)
|
||||
Ra225[31.560]: 506 Emean = 97.977 keV ( 9.7645 keV --> 331.37 keV)
|
||||
Ra225[321.760]: 104 Emean = 96.256 keV ( 6.0268 keV --> 311.28 keV)
|
||||
Ra225[328.000]: 7 Emean = 83.264 keV ( 79.844 keV --> 84.627 keV)
|
||||
Ra225[390.000]: 15 Emean = 87.409 keV ( 50.137 keV --> 174.96 keV)
|
||||
Ra225[394.720]: 18 Emean = 103.41 keV ( 83.459 keV --> 271.49 keV)
|
||||
Ra225[42.770]: 3985 Emean = 96.312 keV ( 7.9744 meV --> 337.06 keV)
|
||||
Ra225[478.400]: 2 Emean = 81.995 keV ( 81.995 keV --> 81.995 keV)
|
||||
Ra225[487.000]: 1 Emean = 81.845 keV ( 81.845 keV --> 81.845 keV)
|
||||
Ra225[55.160]: 69 Emean = 89.741 keV ( 14.079 keV --> 327.19 keV)
|
||||
Ra225[603.000]: 2 Emean = 79.815 keV ( 79.815 keV --> 79.815 keV)
|
||||
Ra225[609.000]: 2 Emean = 79.71 keV ( 79.71 keV --> 79.71 keV)
|
||||
Ra225[69.360]: 382 Emean = 96.735 keV ( 4.1939 keV --> 323.89 keV)
|
||||
Rn217: 9 Emean = 123.09 keV ( 121.85 keV --> 124.71 keV)
|
||||
Rn217[149.180]: 3 Emean = 122.01 keV ( 122.01 keV --> 122.01 keV)
|
||||
Rn217[184.000]: 1 Emean = 121.37 keV ( 121.37 keV --> 121.37 keV)
|
||||
Rn217[93.020]: 3 Emean = 122.72 keV ( 122.11 keV --> 123.03 keV)
|
||||
Rn221: 1 Emean = 90.201 keV ( 90.201 keV --> 90.201 keV)
|
||||
Rn221[30.000]: 1 Emean = 90.179 keV ( 90.179 keV --> 90.179 keV)
|
||||
Th229: 8777 Emean = 84.321 keV ( 77.469 keV --> 84.358 keV)
|
||||
Th229[0.008]: 1223 Emean = 83.518 keV ( 78.654 keV --> 83.962 keV)
|
||||
Th229[125.439]: 9 Emean = 82.057 keV ( 81.445 keV --> 82.201 keV)
|
||||
Th229[146.357]: 4 Emean = 81.841 keV ( 81.841 keV --> 81.841 keV)
|
||||
Th229[163.254]: 4 Emean = 81.551 keV ( 81.551 keV --> 81.551 keV)
|
||||
Th229[189.990]: 2 Emean = 81.091 keV ( 81.091 keV --> 81.091 keV)
|
||||
Th229[217.160]: 1 Emean = 80.624 keV ( 80.624 keV --> 80.624 keV)
|
||||
Th229[287.895]: 1 Emean = 78.756 keV ( 78.756 keV --> 78.756 keV)
|
||||
Th229[288.491]: 1 Emean = 77.668 keV ( 77.668 keV --> 77.668 keV)
|
||||
Th229[29.193]: 1473 Emean = 83.523 keV ( 78.673 keV --> 83.856 keV)
|
||||
Th229[317.173]: 3 Emean = 78.904 keV ( 78.904 keV --> 78.904 keV)
|
||||
Th229[320.548]: 1 Emean = 78.846 keV ( 78.846 keV --> 78.846 keV)
|
||||
Th229[374.815]: 1 Emean = 77.913 keV ( 77.913 keV --> 77.913 keV)
|
||||
Th229[42.435]: 1436 Emean = 83.561 keV ( 81.089 keV --> 83.628 keV)
|
||||
Th229[67.800]: 2 Emean = 83.192 keV ( 83.192 keV --> 83.192 keV)
|
||||
Th229[71.826]: 59 Emean = 82.532 keV ( 78.667 keV --> 83.123 keV)
|
||||
Th229[75.100]: 1 Emean = 83.067 keV ( 83.067 keV --> 83.067 keV)
|
||||
Th229[97.136]: 157 Emean = 82.66 keV ( 81.078 keV --> 82.688 keV)
|
||||
Tl209: 215 Emean = 112.02 keV ( 106.09 keV --> 112.51 keV)
|
||||
Tl209[323.810]: 17 Emean = 106.41 keV ( 106.41 keV --> 106.41 keV)
|
||||
U233: 10000 Emean = 362.44 meV ( 3.7544 meV --> 2.019 eV )
|
||||
U233[155.230]: 46 Emean = 111.36 meV ( 90.833 meV --> 553.61 meV)
|
||||
U233[298.810]: 2232 Emean = 98.522 meV ( 3.9872 meV --> 571.51 meV)
|
||||
U233[301.940]: 28 Emean = 4.0725 meV ( 0.7858 meV --> 6.1991 meV)
|
||||
U233[311.904]: 5272 Emean = 173.44 meV ( 1.8626 meV --> 717.15 meV)
|
||||
U233[320.830]: 33 Emean = 95.947 meV ( 0.90222 meV --> 240.25 meV)
|
||||
U233[340.477]: 2592 Emean = 225.21 meV ( 0.40745 meV --> 617.5 meV)
|
||||
U233[353.790]: 2561 Emean = 116.76 meV ( 98.4 meV --> 150.93 meV)
|
||||
U233[398.496]: 1554 Emean = 154.6 meV ( 1.2224 meV --> 452.62 meV)
|
||||
U233[40.350]: 1456 Emean = 287.4 meV ( 6.17 meV --> 908.77 meV)
|
||||
U233[415.758]: 2585 Emean = 130.86 meV ( 1.4261 meV --> 395.9 meV)
|
||||
U233[92.160]: 154 Emean = 161.54 meV ( 9.1677 meV --> 768.57 meV)
|
||||
alpha: 80001 Emean = 5.9271 MeV ( 4.2727 MeV --> 8.3755 MeV)
|
||||
anti_nu_e: 40000 Emean = 425 keV ( 10.667 keV --> 1.8259 MeV)
|
||||
e+: 1 Emean = 255.46 keV ( 255.46 keV --> 255.46 keV)
|
||||
e-: 1276636 Emean = 11.534 keV ( 1.3878e-05 meV --> 1.6129 MeV)
|
||||
gamma: 75206 Emean = 83.965 keV ( 34.16 eV --> 4.4696 MeV)
|
||||
neutron: 10 Emean = 4.8531 MeV ( 1.2557 MeV --> 10.866 MeV)
|
||||
Ac225: 9997 Emean = 163.22 meV ( 3.8417 meV --> 1.1312 eV ) mean life = 14.427 d
|
||||
At217: 9988 Emean = 116.39 keV ( 105.65 keV --> 117.05 keV) mean life = 46.599 ms
|
||||
Bi209: 10000 Emean = 1.2167 eV ( 4.2201 meV --> 2.6873 eV ) stable
|
||||
Bi213: 9989 Emean = 132.93 keV ( 10.185 eV --> 132.95 keV) mean life = 1.0962 h
|
||||
C12: 4 Emean = 2.2124 MeV ( 1.6285 MeV --> 2.6655 MeV) stable
|
||||
Fr221: 9999 Emean = 104.89 keV ( 18.19 meV --> 105.65 keV) mean life = 7.0692 min
|
||||
Ne21: 1 Emean = 1.6925 MeV ( 1.6925 MeV --> 1.6925 MeV) stable
|
||||
Np237: 10000 Emean = 92.567 keV ( 90.102 keV --> 93.678 keV) mean life = 3.0953e+06 y
|
||||
Pa233: 10000 Emean = 81.961 keV ( 77.341 keV --> 83.776 keV) mean life = 38.917 d
|
||||
Pb209: 10000 Emean = 156.67 keV ( 5.2021 eV --> 160.59 keV) mean life = 4.6931 h
|
||||
Pb213: 1 Emean = 122.98 keV ( 122.98 keV --> 122.98 keV) mean life = 14.715 min
|
||||
Po213: 9756 Emean = 167.46 eV ( 14.901 meV --> 145.62 keV) mean life = 5.3668 us
|
||||
Po217: 1 Emean = 111.69 keV ( 111.69 keV --> 111.69 keV) mean life = 2.1063 s
|
||||
Ra221: 11 Emean = 337.27 meV ( 88.447 meV --> 693.25 meV) mean life = 40.395 s
|
||||
Ra225: 10000 Emean = 97.065 keV ( 16.997 meV --> 340.07 keV) mean life = 21.496 d
|
||||
Rn217: 11 Emean = 123.05 keV ( 121.94 keV --> 124.71 keV) mean life = 779.06 us
|
||||
Rn221: 3 Emean = 90.535 keV ( 90.178 keV --> 90.714 keV) mean life = 36.067 min
|
||||
Th229: 8788 Emean = 84.322 keV ( 77.94 keV --> 84.358 keV) mean life = 11376 y
|
||||
Tl209: 244 Emean = 112.15 keV ( 105.97 keV --> 112.51 keV) mean life = 3.1739 min
|
||||
U233: 10000 Emean = 355.94 meV ( 3.7544 meV --> 1.9901 eV ) mean life = 2.2983e+05 y
|
||||
alpha: 80000 Emean = 5.9264 MeV ( 4.4558 MeV --> 8.3755 MeV) stable
|
||||
anti_nu_e: 40000 Emean = 424.22 keV ( 7.8244 keV --> 1.8128 MeV) stable
|
||||
e-: 1271709 Emean = 11.629 keV ( 1.3878e-05 meV --> 7.9739 MeV) stable
|
||||
gamma: 74906 Emean = 85.003 keV ( 34.56 eV --> 9.6206 MeV) stable
|
||||
neutron: 5 Emean = 4.4639 MeV ( 1.535 MeV --> 7.6945 MeV) mean life = 14.67 min
|
||||
|
||||
Mean energy deposit per event = 49.746 MeV rms = 478.88 keV
|
||||
Mean energy flow per event = 2.0664 MeV rms = 524.66 keV
|
||||
Mean energy deposit per event = 49.747 MeV rms = 498.75 keV
|
||||
Mean energy flow per event = 2.0624 MeV rms = 519.31 keV
|
||||
|
||||
List of particles emerging from the container :
|
||||
anti_nu_e: 40000 Emean = 425 keV ( 10.667 keV --> 1.8259 MeV) Eflow/event = 1.7 MeV
|
||||
e-: 14 Emean = 266.67 keV ( 10.041 keV --> 1.0454 MeV) Eflow/event = 373.33 eV
|
||||
gamma: 15176 Emean = 238.33 keV ( 5.3768 keV --> 4.4696 MeV) Eflow/event = 361.68 keV
|
||||
neutron: 9 Emean = 4.8317 MeV ( 1.2557 MeV --> 10.866 MeV) Eflow/event = 4.3485 keV
|
||||
anti_nu_e: 40000 Emean = 424.22 keV ( 7.8244 keV --> 1.8128 MeV) Eflow/event = 1.6969 MeV
|
||||
e-: 19 Emean = 283.7 keV ( 14.372 keV --> 909.24 keV) Eflow/event = 539.02 eV
|
||||
gamma: 15151 Emean = 239.44 keV ( 6.3627 keV --> 4.5158 MeV) Eflow/event = 362.78 keV
|
||||
neutron: 5 Emean = 4.4639 MeV ( 1.535 MeV --> 7.6945 MeV) Eflow/event = 2.232 keV
|
||||
|
||||
--------- Ranecu engine status ---------
|
||||
Initial seed (index) = 0
|
||||
Current couple of seeds = 1631299237, 47044555
|
||||
Current couple of seeds = 399684090, 1044084741
|
||||
----------------------------------------
|
||||
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.061 MB
|
||||
Dynamic pools deleted: 11 / Total memory freed: 0.059 MB
|
||||
============================================================
|
||||
RunManagerKernel is deleted. Good bye :)
|
||||
|
||||
@@ -52,9 +52,6 @@
|
||||
GammmaNuclearPhysics is a subset of G4BertiniElectroNuclearBuilder.
|
||||
|
||||
ElectromagneticPhysics is a simplified version of G4EmStandardPhysics.
|
||||
In perticular, no step constraint is imposed for energy loss mechanism (ionisation and brems).
|
||||
This is enough when spatial distribution of deposited energy do not need
|
||||
to be accurate (see param->SetStepFunction(1., 1*mm)).
|
||||
|
||||
In PhysicsList::ConstructProcess() we give an example of how to access hadronic models.
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
|
||||
class DetectorConstruction;
|
||||
class G4VSteppingVerbose;
|
||||
|
||||
/// Action initialization class.
|
||||
///
|
||||
@@ -46,8 +45,6 @@ class ActionInitialization : public G4VUserActionInitialization
|
||||
|
||||
virtual void BuildForMaster() const;
|
||||
virtual void Build() const;
|
||||
|
||||
virtual G4VSteppingVerbose* InitializeSteppingVerbose() const;
|
||||
|
||||
private:
|
||||
DetectorConstruction* fDetector;
|
||||
|
||||
@@ -42,16 +42,16 @@ class ElectromagneticPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
ElectromagneticPhysics(const G4String& name = "standard");
|
||||
~ElectromagneticPhysics();
|
||||
~ElectromagneticPhysics() override;
|
||||
|
||||
public:
|
||||
// This method is dummy for physics
|
||||
virtual void ConstructParticle() {};
|
||||
void ConstructParticle() override {};
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
void ConstructProcess() override;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file GammaNuclearPhysics.hh
|
||||
/// \file hadronic/Hadr03/include/GammaNuclearPhysics.hh
|
||||
/// \brief Definition of the GammaNuclearPhysics class
|
||||
//
|
||||
//
|
||||
@@ -42,11 +42,11 @@ class GammaNuclearPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
GammaNuclearPhysics(const G4String& name="gamma");
|
||||
~GammaNuclearPhysics();
|
||||
~GammaNuclearPhysics() override;
|
||||
|
||||
public:
|
||||
virtual void ConstructParticle() { };
|
||||
virtual void ConstructProcess();
|
||||
void ConstructParticle() override { };
|
||||
void ConstructProcess() override;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
+18
-17
@@ -23,32 +23,33 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file SteppingVerbose.hh
|
||||
/// \brief Definition of the SteppingVerbose class
|
||||
/// \file hadronic/Hadr03/include/GammaNuclearPhysicsLEND.hh
|
||||
/// \brief Definition of the GammaNuclearPhysics class
|
||||
//
|
||||
//
|
||||
//
|
||||
//....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 {
|
||||
#ifndef GammaNuclearPhysicsLEND_h
|
||||
#define GammaNuclearPhysicsLEND_h 1
|
||||
|
||||
public:
|
||||
#include "globals.hh"
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
SteppingVerbose();
|
||||
~SteppingVerbose();
|
||||
|
||||
virtual void TrackingStarted();
|
||||
virtual void StepInfo();
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class GammaNuclearPhysicsLEND : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
GammaNuclearPhysicsLEND(const G4String& name="gamma");
|
||||
~GammaNuclearPhysicsLEND() override;
|
||||
|
||||
public:
|
||||
void ConstructParticle() override { };
|
||||
void ConstructProcess() override;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -40,11 +40,11 @@ class PhysicsList: public G4VModularPhysicsList
|
||||
{
|
||||
public:
|
||||
PhysicsList();
|
||||
~PhysicsList();
|
||||
~PhysicsList() override;
|
||||
|
||||
public:
|
||||
virtual void ConstructProcess();
|
||||
virtual void SetCuts();
|
||||
void ConstructProcess() override;
|
||||
void SetCuts()override;
|
||||
|
||||
private:
|
||||
G4VPhysicsConstructor* fHadronElastic;
|
||||
|
||||
@@ -52,24 +52,26 @@ class Run : public G4Run
|
||||
public:
|
||||
void SetPrimary(G4ParticleDefinition* particle, G4double energy);
|
||||
void CountProcesses(const G4VProcess* process);
|
||||
void ParticleCount(G4String, G4double);
|
||||
void ParticleCount(G4String, G4double, G4double);
|
||||
void AddEdep (G4double edep);
|
||||
void AddEflow (G4double eflow);
|
||||
void ParticleFlux(G4String, G4double);
|
||||
|
||||
virtual void Merge(const G4Run*);
|
||||
void Merge(const G4Run*) override;
|
||||
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) {}
|
||||
: fCount(0), fEmean(0.), fEmin(0.), fEmax(0.),fTmean(-1.) {}
|
||||
ParticleData(G4int count, G4double ekin, G4double emin, G4double emax,
|
||||
G4double meanLife)
|
||||
: fCount(count),fEmean(ekin),fEmin(emin),fEmax(emax),fTmean(meanLife) {}
|
||||
G4int fCount;
|
||||
G4double fEmean;
|
||||
G4double fEmin;
|
||||
G4double fEmax;
|
||||
G4double fTmean;
|
||||
};
|
||||
|
||||
private:
|
||||
|
||||
@@ -10,6 +10,9 @@
|
||||
##/testhadr/det/setAbsorLength 60 mm
|
||||
##/testhadr/det/setContThick 2.4 mm
|
||||
#
|
||||
/process/em/verbose 0
|
||||
/process/had/verbose 1
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
/process/inactivate hadElastic
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
#include "EventAction.hh"
|
||||
#include "TrackingAction.hh"
|
||||
#include "SteppingAction.hh"
|
||||
#include "SteppingVerbose.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -76,10 +75,3 @@ void ActionInitialization::Build() const
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4VSteppingVerbose* ActionInitialization::InitializeSteppingVerbose() const
|
||||
{
|
||||
return new SteppingVerbose();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
#include "G4RayleighScattering.hh"
|
||||
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4eIonisation.hh"
|
||||
@@ -72,8 +73,10 @@ ElectromagneticPhysics::ElectromagneticPhysics(const G4String& name)
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(0);
|
||||
param->SetStepFunction(1., 1*mm); //default= 0.1, 100*um
|
||||
param->SetStepFunctionMuHad(1., 1*mm);
|
||||
param->SetStepFunction(0.2, 1*mm); //default= 0.1, 100*um
|
||||
param->SetStepFunctionMuHad(0.2, 1*mm);
|
||||
param->SetStepFunctionLightIons(0.2, 100*um);
|
||||
param->SetStepFunctionIons(0.2, 50*um);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -96,7 +99,8 @@ void ElectromagneticPhysics::ConstructProcess()
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
|
||||
|
||||
ph->RegisterProcess(new G4RayleighScattering, particle);
|
||||
ph->RegisterProcess(new G4PhotoElectricEffect, particle);
|
||||
ph->RegisterProcess(new G4ComptonScattering, particle);
|
||||
ph->RegisterProcess(new G4GammaConversion, particle);
|
||||
@@ -104,13 +108,13 @@ void ElectromagneticPhysics::ConstructProcess()
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
ph->RegisterProcess(new G4eMultipleScattering(), particle);
|
||||
ph->RegisterProcess(new G4eIonisation(), 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 G4eIonisation, particle);
|
||||
ph->RegisterProcess(new G4eBremsstrahlung(), particle);
|
||||
ph->RegisterProcess(new G4eplusAnnihilation(), particle);
|
||||
|
||||
@@ -118,7 +122,7 @@ void ElectromagneticPhysics::ConstructProcess()
|
||||
particleName == "mu-" ) {
|
||||
|
||||
ph->RegisterProcess(new G4MuMultipleScattering(), particle);
|
||||
ph->RegisterProcess(new G4MuIonisation(), particle);
|
||||
ph->RegisterProcess(new G4MuIonisation, particle);
|
||||
ph->RegisterProcess(new G4MuBremsstrahlung(), particle);
|
||||
ph->RegisterProcess(new G4MuPairProduction(), particle);
|
||||
|
||||
@@ -127,13 +131,13 @@ void ElectromagneticPhysics::ConstructProcess()
|
||||
particleName == "pi+" ) {
|
||||
|
||||
ph->RegisterProcess(new G4hMultipleScattering(), particle);
|
||||
ph->RegisterProcess(new G4hIonisation(), 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 G4ionIonisation, particle);
|
||||
ph->RegisterProcess(new G4NuclearStopping(), particle);
|
||||
|
||||
} else if( particleName == "GenericIon" ) {
|
||||
|
||||
@@ -37,10 +37,12 @@
|
||||
|
||||
// Processes
|
||||
|
||||
#include "G4PhotoNuclearProcess.hh"
|
||||
#include "G4HadronInelasticProcess.hh"
|
||||
#include "G4LowEGammaNuclearModel.hh"
|
||||
#include "G4CascadeInterface.hh"
|
||||
|
||||
#include "G4PhotoNuclearCrossSection.hh"
|
||||
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -58,7 +60,8 @@ GammaNuclearPhysics::~GammaNuclearPhysics()
|
||||
|
||||
void GammaNuclearPhysics::ConstructProcess()
|
||||
{
|
||||
G4PhotoNuclearProcess* process = new G4PhotoNuclearProcess();
|
||||
G4HadronInelasticProcess* process = new G4HadronInelasticProcess( "photonNuclear", G4Gamma::Definition() );
|
||||
process->AddDataSet( new G4PhotoNuclearCrossSection );
|
||||
|
||||
// to not register a model, set Emax=0; eg. Emax1 = 0.
|
||||
const G4double Emax1 = 200*MeV, Emax2 = 10*GeV;
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on 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 "G4HadronInelasticProcess.hh"
|
||||
#include "G4LENDorBERTModel.hh"
|
||||
#include "G4LENDCombinedCrossSection.hh"
|
||||
#include "G4PhotoNuclearCrossSection.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();
|
||||
//
|
||||
G4HadronInelasticProcess* process = new G4HadronInelasticProcess( "photonNuclear", G4Gamma::Definition() );
|
||||
process->AddDataSet( new G4PhotoNuclearCrossSection );
|
||||
//
|
||||
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......
|
||||
@@ -49,9 +49,10 @@
|
||||
|
||||
#include "G4StoppingPhysics.hh"
|
||||
#include "GammaNuclearPhysics.hh"
|
||||
#include "GammaNuclearPhysicsLEND.hh"
|
||||
|
||||
#include "ElectromagneticPhysics.hh"
|
||||
#include "G4EmStandardPhysics.hh"
|
||||
#include "G4EmStandardPhysics_option3.hh"
|
||||
#include "G4DecayPhysics.hh"
|
||||
#include "G4RadioactiveDecayPhysics.hh"
|
||||
|
||||
@@ -73,7 +74,6 @@ PhysicsList::PhysicsList()
|
||||
|
||||
//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);
|
||||
|
||||
@@ -104,11 +104,12 @@ PhysicsList::PhysicsList()
|
||||
|
||||
// Gamma-Nuclear Physics
|
||||
fGammaNuclear = new GammaNuclearPhysics("gamma");
|
||||
////fGammaNuclear = new GammaNuclearPhysicsLEND("gamma");
|
||||
RegisterPhysics(fGammaNuclear);
|
||||
|
||||
// EM physics
|
||||
fElectromagnetic = new ElectromagneticPhysics();
|
||||
////fElectromagnetic = new G4EmStandardPhysics();
|
||||
////fElectromagnetic = new G4EmStandardPhysics_option3();
|
||||
RegisterPhysics(fElectromagnetic);
|
||||
|
||||
// Decay
|
||||
|
||||
@@ -77,11 +77,11 @@ void Run::CountProcesses(const G4VProcess* process)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void Run::ParticleCount(G4String name, G4double Ekin)
|
||||
void Run::ParticleCount(G4String name, G4double Ekin, G4double meanLife)
|
||||
{
|
||||
std::map<G4String, ParticleData>::iterator it = fParticleDataMap1.find(name);
|
||||
if ( it == fParticleDataMap1.end()) {
|
||||
fParticleDataMap1[name] = ParticleData(1, Ekin, Ekin, Ekin);
|
||||
fParticleDataMap1[name] = ParticleData(1, Ekin, Ekin, Ekin, meanLife);
|
||||
}
|
||||
else {
|
||||
ParticleData& data = it->second;
|
||||
@@ -91,7 +91,8 @@ void Run::ParticleCount(G4String name, G4double Ekin)
|
||||
G4double emin = data.fEmin;
|
||||
if (Ekin < emin) data.fEmin = Ekin;
|
||||
G4double emax = data.fEmax;
|
||||
if (Ekin > emax) data.fEmax = Ekin;
|
||||
if (Ekin > emax) data.fEmax = Ekin;
|
||||
data.fTmean = meanLife;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,7 +117,7 @@ void Run::ParticleFlux(G4String name, G4double Ekin)
|
||||
{
|
||||
std::map<G4String, ParticleData>::iterator it = fParticleDataMap2.find(name);
|
||||
if ( it == fParticleDataMap2.end()) {
|
||||
fParticleDataMap2[name] = ParticleData(1, Ekin, Ekin, Ekin);
|
||||
fParticleDataMap2[name] = ParticleData(1, Ekin, Ekin, Ekin, -1*ns);
|
||||
}
|
||||
else {
|
||||
ParticleData& data = it->second;
|
||||
@@ -126,7 +127,8 @@ void Run::ParticleFlux(G4String name, G4double Ekin)
|
||||
G4double emin = data.fEmin;
|
||||
if (Ekin < emin) data.fEmin = Ekin;
|
||||
G4double emax = data.fEmax;
|
||||
if (Ekin > emax) data.fEmax = Ekin;
|
||||
if (Ekin > emax) data.fEmax = Ekin;
|
||||
data.fTmean = -1*ns;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,7 +177,8 @@ void Run::Merge(const G4Run* run)
|
||||
= ParticleData(localData.fCount,
|
||||
localData.fEmean,
|
||||
localData.fEmin,
|
||||
localData.fEmax);
|
||||
localData.fEmax,
|
||||
localData.fTmean);
|
||||
}
|
||||
else {
|
||||
ParticleData& data = fParticleDataMap1[name];
|
||||
@@ -184,7 +187,8 @@ void Run::Merge(const G4Run* run)
|
||||
G4double emin = localData.fEmin;
|
||||
if (emin < data.fEmin) data.fEmin = emin;
|
||||
G4double emax = localData.fEmax;
|
||||
if (emax > data.fEmax) data.fEmax = emax;
|
||||
if (emax > data.fEmax) data.fEmax = emax;
|
||||
data.fTmean = localData.fTmean;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -200,7 +204,8 @@ void Run::Merge(const G4Run* run)
|
||||
= ParticleData(localData.fCount,
|
||||
localData.fEmean,
|
||||
localData.fEmin,
|
||||
localData.fEmax);
|
||||
localData.fEmax,
|
||||
localData.fTmean);
|
||||
}
|
||||
else {
|
||||
ParticleData& data = fParticleDataMap2[name];
|
||||
@@ -209,7 +214,8 @@ void Run::Merge(const G4Run* run)
|
||||
G4double emin = localData.fEmin;
|
||||
if (emin < data.fEmin) data.fEmin = emin;
|
||||
G4double emax = localData.fEmax;
|
||||
if (emax > data.fEmax) data.fEmax = emax;
|
||||
if (emax > data.fEmax) data.fEmax = emax;
|
||||
data.fTmean = localData.fTmean;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,13 +266,16 @@ void Run::EndOfRun()
|
||||
G4int count = data.fCount;
|
||||
G4double eMean = data.fEmean/count;
|
||||
G4double eMin = data.fEmin;
|
||||
G4double eMax = data.fEmax;
|
||||
G4double eMax = data.fEmax;
|
||||
G4double meanLife = data.fTmean;
|
||||
|
||||
G4cout << " " << std::setw(13) << name << ": " << std::setw(7) << count
|
||||
<< " Emean = " << std::setw(wid) << G4BestUnit(eMean, "Energy")
|
||||
<< "\t( " << G4BestUnit(eMin, "Energy")
|
||||
<< " --> " << G4BestUnit(eMax, "Energy")
|
||||
<< ")" << G4endl;
|
||||
<< " --> " << G4BestUnit(eMax, "Energy") << ")";
|
||||
if (meanLife >= 0.)
|
||||
G4cout << "\tmean life = " << G4BestUnit(meanLife, "Time") << G4endl;
|
||||
else G4cout << "\tstable" << G4endl;
|
||||
}
|
||||
|
||||
// compute mean Energy deposited and rms
|
||||
|
||||
@@ -1,157 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file SteppingVerbose.cc
|
||||
/// \brief Implementation of the SteppingVerbose class
|
||||
//
|
||||
//
|
||||
//
|
||||
//....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) {
|
||||
const std::vector<const G4Track*>* secondary
|
||||
= fStep->GetSecondaryInCurrentStep();
|
||||
size_t nbtrk = (*secondary).size();
|
||||
if (nbtrk) {
|
||||
G4cout << "\n :----- List of secondaries ----------------" << G4endl;
|
||||
G4cout.precision(4);
|
||||
for (size_t lp=0; lp<(*secondary).size(); lp++) {
|
||||
G4cout << " "
|
||||
<< std::setw(13)
|
||||
<< (*secondary)[lp]->GetDefinition()->GetParticleName()
|
||||
<< ": energy ="
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*secondary)[lp]->GetKineticEnergy(),"Energy")
|
||||
<< " time ="
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*secondary)[lp]->GetGlobalTime(),"Time");
|
||||
G4cout << G4endl;
|
||||
}
|
||||
|
||||
G4cout << " :------------------------------------------\n" << G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
G4cout.precision(prec);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -55,12 +55,15 @@ TrackingAction::TrackingAction(EventAction* event)
|
||||
void TrackingAction::PreUserTrackingAction(const G4Track* track)
|
||||
{
|
||||
//count secondary particles
|
||||
if (track->GetTrackID() == 1) return;
|
||||
G4String name = track->GetDefinition()->GetParticleName();
|
||||
G4double energy = track->GetKineticEnergy();
|
||||
if (track->GetTrackID() == 1) return;
|
||||
|
||||
Run* run = static_cast<Run*>(
|
||||
G4RunManager::GetRunManager()->GetNonConstCurrentRun());
|
||||
run->ParticleCount(name,energy);
|
||||
G4RunManager::GetRunManager()->GetNonConstCurrentRun());
|
||||
|
||||
G4String name = track->GetDefinition()->GetParticleName();
|
||||
G4double meanLife = track->GetDefinition()->GetPDGLifeTime();
|
||||
G4double energy = track->GetKineticEnergy();
|
||||
if (meanLife != 0.) run->ParticleCount(name,energy,meanLife);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
Reference in New Issue
Block a user