Import Geant4 10.3.0 source tree
This commit is contained in:
@@ -7,6 +7,9 @@ cirrone@lns.infn.it
|
||||
History file of the ChargeExchangeMC application
|
||||
====================================================
|
||||
|
||||
02.11.2016 - L. Garnier, Tag ChargeExchangeMC-V10-02-00
|
||||
Remove icons.mac. Automatically include since interfaces-V10-02-07
|
||||
|
||||
09.12.2014 - A. Radkov, Tag ChargeExchangeMC-V10-01-00
|
||||
CERN ROOT histograming binding. Bug fix for online histogram
|
||||
redrawing and easy online histogram showing from a dedicated
|
||||
|
||||
@@ -25,6 +25,3 @@
|
||||
/cexmc/histo/addHistoMenu histo Histo
|
||||
/cexmc/histo/drawOptions2D contz
|
||||
/cexmc/histo/drawOptions3D iso
|
||||
|
||||
# Add an icon toolbar
|
||||
/control/execute mac/icons.mac
|
||||
|
||||
@@ -23,7 +23,7 @@ include(${Geant4_USE_FILE})
|
||||
#----------------------------------------------------------------------------
|
||||
# Add options
|
||||
#
|
||||
option(ULTRA_MIRROR_USE "Use of mirrors" OFF)
|
||||
option(ULTRA_MIRROR_USE "Use of mirrors" ON)
|
||||
if(ULTRA_MIRROR_USE)
|
||||
add_definitions(-DULTRA_MIRROR_USE)
|
||||
endif()
|
||||
@@ -38,11 +38,6 @@ if(ULTRA_GROUND_USE)
|
||||
add_definitions(-DULTRA_GROUND_USE)
|
||||
endif()
|
||||
|
||||
option(ULTRA_REFLECTION_USE "Use of reflection" OFF)
|
||||
if(ULTRA_REFLECTION_USE)
|
||||
add_definitions(-DULTRA_REFLECTION_USE)
|
||||
endif()
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Locate sources and headers for this project
|
||||
#
|
||||
|
||||
@@ -13,7 +13,7 @@ endif
|
||||
include $(G4INSTALL)/config/architecture.gmk
|
||||
|
||||
ifdef SPACE_VERBOSE
|
||||
CPPFLAGS += -DSPACE_VERBOSE_USE
|
||||
CPPFLAGS += -DULTRA_VERBOSE_USE
|
||||
endif
|
||||
ifdef ULTRA_MIRROR_USE
|
||||
CPPFLAGS += -DULTRA_MIRROR_USE
|
||||
|
||||
@@ -7,6 +7,22 @@
|
||||
History file
|
||||
------------
|
||||
|
||||
21.11.2016 - G. Cosmo (air_shower-V10-02-03)
|
||||
Fixed compilation warning for unused variable in
|
||||
UltraDetectorConstruction.
|
||||
|
||||
19.11.2016 - A. Dotti (air_shower-V10-02-02)
|
||||
Explicit set of SD to manager
|
||||
|
||||
16.11.2016 - B. Tome
|
||||
Use modular physics lists.
|
||||
Remove drawing of step points from Visualisation.mac
|
||||
Update History, README, CMakeLists.txt and GNUmakefile.
|
||||
|
||||
28.11.2016 - G. Folger (air_shower-V10-02-01)
|
||||
Replace direct use of theParticleIterator by GetParticleIterator().
|
||||
fix required by clang39 on Windows and MAC
|
||||
|
||||
03.03.2016 - L. Pandola (air_shower-V10-02-00)
|
||||
Replace std::log with G4Log
|
||||
|
||||
|
||||
@@ -53,10 +53,16 @@ provided, for building with cmake |
|
||||
|
||||
The following environment variables can be set: |
|
||||
|
||||
setenv ULTRA_VERBOSE
|
||||
1) GNUmakefile
|
||||
|
||||
setenv ULTRA_VERBOSE
|
||||
setenv ULTRA_MIRROR_USE 1 : A specular reflecting surface is used.
|
||||
setenv ULTRA_GROUND_USE 1 : A diffusive reflecting surface is used.
|
||||
|
||||
2) CMakeLists.txt
|
||||
|
||||
set ON/OFF the appropriate option (ULTRA_MIRROR_USE, ULTRA_GROUND_USE)
|
||||
|
||||
setenv ULTRA_MIRROR_USE 1 : A specular reflecting surface is used.
|
||||
setenv ULTRA_GROUND_USE 1 : A diffusive reflecting surface is used.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
@@ -80,16 +86,16 @@ the Geant4 application developer manual (Analysis Manager Classes)
|
||||
-----------------------------------------------------------------------
|
||||
----> How to run the example. |
|
||||
|
||||
- batch mode:
|
||||
$G4WORDIR/bin/Linux-g++/Ultra UltraMacro.mac |
|
||||
|
|
||||
- Interative mode:
|
||||
3) $G4WORDIR/bin/Linux-g++/Ultra |
|
||||
From the directory where the Ultra binary resides :
|
||||
|
||||
./Ultra UltraMacro.mac for running in batch mode |
|
||||
|
|
||||
./Ultra for running in interative mode. |
|
||||
|
||||
------------------------------------------------------------------------
|
||||
----> Simulation output |
|
||||
|
||||
the output is ultra.xml (or ultra.root) |
|
||||
the output is ultra.xml (or ultra.root) |
|
||||
It contains:
|
||||
1)1Dhistogram with the detected photons energy (eV) |
|
||||
2)1Dhistogram with the number of detected photons per event |
|
||||
@@ -104,5 +110,5 @@ to run it : $G4WORKDIR/bin/Linux-g++/Ultra Visualisation.mac
|
||||
for comments and questions: bernardo@lip.pt
|
||||
for more info http://www.ge.infn.it/geant4/examples/
|
||||
|
||||
last modified: L. Pandola 28/05/2013
|
||||
last modified: B. Tome 26/11/2016
|
||||
created by : B. Tome and M.C. Espirito Santo 20/05/2004
|
||||
|
||||
@@ -40,9 +40,9 @@
|
||||
# Draw smooth trajectories at end of event, showing trajectory points
|
||||
# as markers 2 pixels wide:
|
||||
/vis/scene/add/trajectories smooth
|
||||
/vis/modeling/trajectories/create/drawByCharge
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2
|
||||
#/vis/modeling/trajectories/create/drawByCharge
|
||||
#/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true
|
||||
#/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2
|
||||
# (if too many tracks cause core dump => /tracking/storeTrajectory 0)
|
||||
#
|
||||
# Draw hits at end of event:
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-10-03-beta-01 (30-June-2016)
|
||||
Geant4 version Name: geant4-10-03 (9-December-2016)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
@@ -41,14 +41,14 @@ Registered model factories:
|
||||
drawByCharge
|
||||
drawByOriginVolume
|
||||
drawByParticleID
|
||||
drawByTouchedVolume
|
||||
drawByEncounteredVolume
|
||||
|
||||
Registered filter factories:
|
||||
attributeFilter
|
||||
chargeFilter
|
||||
originVolumeFilter
|
||||
particleFilter
|
||||
touchedVolumeFilter
|
||||
encounteredVolumeFilter
|
||||
|
||||
You have successfully registered the following user vis actions.
|
||||
Run Duration User Vis Actions: none
|
||||
@@ -159,8 +159,8 @@ Available colours:
|
||||
# #
|
||||
# #
|
||||
######################################################
|
||||
No reflecting surface used
|
||||
>>>>>>>>>>>>>> AddDiscreteProcess to OpticalPhoton
|
||||
Using mirror reflecting surface
|
||||
### Birks coeffitients used in run time
|
||||
/run/verbose 2
|
||||
/event/verbose 0
|
||||
/tracking/verbose 0
|
||||
@@ -174,173 +174,6 @@ No reflecting surface used
|
||||
/gps/energy 300.0 MeV
|
||||
/run/beamOn 100
|
||||
|
||||
conv: for gamma SubType= 14 BuildTable= 1
|
||||
Lambda table from 1.022 MeV to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BetheHeitler : Emin= 0 eV Emax= 80 GeV
|
||||
BetheHeitlerLPM : Emin= 80 GeV Emax= 10 TeV
|
||||
|
||||
compt: for gamma SubType= 13 BuildTable= 1
|
||||
Lambda table from 100 eV to 1 MeV, 7 bins per decade, spline: 1
|
||||
LambdaPrime table from 1 MeV to 10 TeV in 49 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Klein-Nishina : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
phot: for gamma SubType= 12 BuildTable= 0
|
||||
LambdaPrime table from 200 keV to 10 TeV in 54 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PhotoElectric : Emin= 0 eV Emax= 10 TeV AngularGenSauterGavrila
|
||||
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
dE/dx and range tables 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
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MollerBhabha : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
eBrem: for e- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen
|
||||
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
dE/dx and range tables 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
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MollerBhabha : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
eBrem: for e+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen
|
||||
|
||||
annihil: for e+, integral: 1 SubType= 5 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eplus2gg : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for proton SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for proton SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 10 TeV
|
||||
|
||||
msc: for anti_proton SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for anti_proton SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 10 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
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)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 200 keV
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 10 TeV
|
||||
|
||||
muBrems: for mu+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
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)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 200 keV
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 10 TeV
|
||||
|
||||
muBrems: for mu- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for pi+ SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 297.505 keV
|
||||
BetheBloch : Emin= 297.505 keV Emax= 10 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for pi- SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 297.505 keV
|
||||
BetheBloch : Emin= 297.505 keV Emax= 10 TeV
|
||||
|
||||
Region <DefaultRegionForTheWorld> -- -- appears in <World> world volume
|
||||
This region is in the mass world.
|
||||
Root logical volume(s) : World
|
||||
@@ -401,14 +234,14 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
|
||||
Voxelisation: top memory users:
|
||||
Percent Memory Heads Nodes Pointers Total CPU Volume
|
||||
------- -------- ------ ------ -------- ---------- ----------
|
||||
52.31 0k 1 13 26 0.00 LensMotherLV
|
||||
47.69 0k 3 9 22 0.00 World
|
||||
50.87 0k 3 11 24 0.00 World
|
||||
49.13 0k 1 13 26 0.00 LensMotherLV
|
||||
### Run 0 starts.
|
||||
ooo Run 0 starts (global).
|
||||
|
||||
--------- Ranlux engine status ---------
|
||||
Initial seed = 1467116815
|
||||
float_seed_table[] = 0.46025 0.614568 0.472781 0.0483307 0.905676 0.729853 0.365072 0.0451633 0.362083 0.523468 0.110341 0.283642 0.72332 0.140984 0.441664 0.88339 0.985072 0.727101 0.377638 0.98976 0.381081 0.685145 0.559393 0.655737
|
||||
Initial seed = 1481193742
|
||||
float_seed_table[] = 0.217621 0.886555 0.608987 0.127666 0.459881 0.802864 0.986453 0.0878205 0.216322 0.911389 0.368897 0.0815611 0.709863 0.526734 0.795146 0.0742022 0.244144 0.298011 0.661845 0.121785 0.28113 0.243757 0.79545 0.316194
|
||||
i_lag = 23, j_lag = 9
|
||||
carry = 0, count24 = 0
|
||||
luxury = 3 nskip = 199
|
||||
@@ -419,7 +252,7 @@ mu- Mono Plane
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 100
|
||||
User=2.86s Real=2.89s Sys=0s
|
||||
User=4.97s Real=5.02s Sys=0s
|
||||
### Run 0 (global) ended.
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
@@ -433,22 +266,22 @@ RunManager is deleting RunManagerKernel.
|
||||
G4SDManager deleted.
|
||||
EventManager deleted.
|
||||
Units table cleared.
|
||||
Total navigation history collections cleaned: 9
|
||||
Total navigation history collections cleaned: 8
|
||||
================== Deleting memory pools ===================
|
||||
Pool ID '20G4NavigationLevelRep', size : 0.0115 MB
|
||||
Pool ID '20G4NavigationLevelRep', size : 0.00961 MB
|
||||
Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB
|
||||
Pool ID '7G4Event', size : 0.000961 MB
|
||||
Pool ID '15G4PrimaryVertex', size : 0.000961 MB
|
||||
Pool ID '17G4PrimaryParticle', size : 0.000961 MB
|
||||
Pool ID '15G4HCofThisEvent', size : 0.000961 MB
|
||||
Pool ID '16G4HitsCollection', size : 0.000961 MB
|
||||
Pool ID '17G4DynamicParticle', size : 0.246 MB
|
||||
Pool ID '7G4Track', size : 0.491 MB
|
||||
Pool ID '17G4DynamicParticle', size : 0.0413 MB
|
||||
Pool ID '7G4Track', size : 0.0827 MB
|
||||
Pool ID '18G4TouchableHistory', size : 0.000961 MB
|
||||
Pool ID '15G4CountedObjectIvE', size : 0.000961 MB
|
||||
Pool ID '15UltraOpticalHit', size : 0.000961 MB
|
||||
Pool ID '15UltraOpticalHit', size : 0.0115 MB
|
||||
Number of memory pools allocated: 12 of which, static: 0
|
||||
Dynamic pools deleted: 12 / Total memory freed: 0.76 MB
|
||||
Dynamic pools deleted: 12 / Total memory freed: 0.15 MB
|
||||
============================================================
|
||||
G4Allocator objects are deleted.
|
||||
UImanager deleted.
|
||||
|
||||
@@ -42,9 +42,9 @@
|
||||
#define UltraPhysicsList_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VUserPhysicsList.hh"
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
|
||||
class UltraPhysicsList : public G4VUserPhysicsList
|
||||
class UltraPhysicsList : public G4VModularPhysicsList
|
||||
{
|
||||
public:
|
||||
UltraPhysicsList();
|
||||
@@ -54,23 +54,28 @@ class UltraPhysicsList : public G4VUserPhysicsList
|
||||
// Construct particles and processes
|
||||
void ConstructParticle();
|
||||
void ConstructProcess();
|
||||
|
||||
//
|
||||
void SetCuts();
|
||||
|
||||
protected:
|
||||
// these methods Construct particles
|
||||
void ConstructBosons();
|
||||
void ConstructLeptons();
|
||||
void ConstructMesons();
|
||||
void ConstructBaryons();
|
||||
private:
|
||||
|
||||
protected:
|
||||
// these methods Construct physics processes and register them
|
||||
void ConstructGeneral();
|
||||
void ConstructEM();
|
||||
void ConstructOp();
|
||||
// hide assignment operator
|
||||
UltraPhysicsList & operator=(const UltraPhysicsList &right);
|
||||
UltraPhysicsList(const UltraPhysicsList&);
|
||||
|
||||
G4VPhysicsConstructor* fEmPhysicsList;
|
||||
G4VPhysicsConstructor* fOpPhysicsList;
|
||||
G4VPhysicsConstructor* fDecayPhysicsList;
|
||||
|
||||
std::vector<G4VPhysicsConstructor*> fHadronPhys;
|
||||
G4String fEmName;
|
||||
|
||||
G4int fVerboseLebel;
|
||||
G4int fMaxNumPhotonStep;
|
||||
|
||||
G4bool fHelIsRegisted;
|
||||
G4bool fBicIsRegisted;
|
||||
G4bool fGnucIsRegisted;
|
||||
G4bool fStopIsRegisted;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -68,6 +68,7 @@
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "G4Colour.hh"
|
||||
#include "G4Log.hh"
|
||||
#include "G4SDManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -114,7 +115,7 @@ World_phys = new G4PVPlacement(0,G4ThreeVector(),"World",World_log,0,false,0);
|
||||
UniverseVisAtt->SetVisibility(true);
|
||||
UniverseVisAtt->SetForceWireframe(true);
|
||||
World_log->SetVisAttributes(UniverseVisAtt);
|
||||
World_log->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
World_log->SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
|
||||
|
||||
|
||||
@@ -139,15 +140,15 @@ World_phys = new G4PVPlacement(0,G4ThreeVector(),"World",World_log,0,false,0);
|
||||
|
||||
G4cout << "Using mirror reflecting surface " << G4endl ;
|
||||
|
||||
G4VPhysicalVolume* Mirror ;
|
||||
Mirror = ConstructMirror(World_phys);
|
||||
// G4VPhysicalVolume* Mirror =
|
||||
ConstructMirror(World_phys);
|
||||
|
||||
#elif ULTRA_GROUND_USE
|
||||
|
||||
G4cout << "Using ground reflecting surface " << G4endl ;
|
||||
|
||||
G4VPhysicalVolume* Ground ;
|
||||
Ground = ConstructGround(World_phys);
|
||||
// G4VPhysicalVolume* Ground =
|
||||
ConstructGround(World_phys);
|
||||
|
||||
#else
|
||||
|
||||
@@ -163,6 +164,7 @@ World_phys = new G4PVPlacement(0,G4ThreeVector(),"World",World_log,0,false,0);
|
||||
void UltraDetectorConstruction::ConstructSDandField()
|
||||
{
|
||||
UltraPMTSD* PMTSD = new UltraPMTSD("PMTSD");
|
||||
G4SDManager::GetSDMpointer()->AddNewDetector(PMTSD);
|
||||
SetSensitiveDetector(logicalPMT,PMTSD);
|
||||
}
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ G4LogicalVolume *LensMotherLV
|
||||
G4VPhysicalVolume *LensMotherPV
|
||||
= new G4PVPlacement(0,LensPosition,"LensMotherPV",LensMotherLV,MotherPV,false,0);
|
||||
|
||||
LensMotherLV->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
LensMotherLV->SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
|
||||
|
||||
G4Cons *solidGroove
|
||||
|
||||
@@ -53,235 +53,83 @@
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
#include "G4EmStandardPhysics.hh"
|
||||
#include "G4EmLivermorePhysics.hh"
|
||||
#include "G4EmPenelopePhysics.hh"
|
||||
#include "G4EmLowEPPhysics.hh"
|
||||
#include "G4DecayPhysics.hh"
|
||||
#include "G4HadronElasticPhysics.hh"
|
||||
#include "G4HadronInelasticQBBC.hh"
|
||||
#include "G4IonPhysics.hh"
|
||||
#include "G4EmExtraPhysics.hh"
|
||||
#include "G4StoppingPhysics.hh"
|
||||
#include "G4OpticalPhysics.hh"
|
||||
|
||||
UltraPhysicsList::UltraPhysicsList() : G4VUserPhysicsList() {;}
|
||||
#include "G4UnitsTable.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4LossTableManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
UltraPhysicsList::UltraPhysicsList() : G4VModularPhysicsList(),
|
||||
fEmPhysicsList(0),
|
||||
fOpPhysicsList(0),
|
||||
fDecayPhysicsList(0),
|
||||
fVerboseLebel(1),
|
||||
fMaxNumPhotonStep(20)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
SetDefaultCutValue(1*mm);
|
||||
|
||||
UltraPhysicsList::~UltraPhysicsList() {;}
|
||||
// fMessenger = new UltraPhysicsListMessenger(this);
|
||||
// fStepMaxProcess = new StepMax();
|
||||
|
||||
// Initilise flags
|
||||
|
||||
SetVerboseLevel(1);
|
||||
|
||||
|
||||
// EM physics
|
||||
fEmName = G4String("emstandard");
|
||||
fEmPhysicsList = new G4EmStandardPhysics();
|
||||
fOpPhysicsList = new G4OpticalPhysics();
|
||||
|
||||
// Decay Physics is always defined
|
||||
fDecayPhysicsList = new G4DecayPhysics();
|
||||
}
|
||||
|
||||
UltraPhysicsList::~UltraPhysicsList()
|
||||
{
|
||||
delete fDecayPhysicsList;
|
||||
delete fEmPhysicsList;
|
||||
delete fOpPhysicsList;
|
||||
// delete fStepMaxProcess;
|
||||
for(size_t i=0; i<fHadronPhys.size(); i++)
|
||||
delete fHadronPhys[i];
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void UltraPhysicsList::ConstructParticle()
|
||||
{
|
||||
// In this method, static member functions should be called
|
||||
// for all particles which you want to use.
|
||||
// This ensures that objects of these particle types will be
|
||||
// created in the program.
|
||||
|
||||
ConstructBosons();
|
||||
ConstructLeptons();
|
||||
ConstructMesons();
|
||||
ConstructBaryons();
|
||||
|
||||
fDecayPhysicsList->ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void UltraPhysicsList::ConstructBosons()
|
||||
{
|
||||
// pseudo-particles
|
||||
G4Geantino::GeantinoDefinition();
|
||||
G4ChargedGeantino::ChargedGeantinoDefinition();
|
||||
|
||||
// gamma
|
||||
G4Gamma::GammaDefinition();
|
||||
|
||||
// optical photon
|
||||
G4OpticalPhoton::OpticalPhotonDefinition();
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void UltraPhysicsList::ConstructLeptons()
|
||||
{
|
||||
// leptons
|
||||
G4Electron::ElectronDefinition();
|
||||
G4Positron::PositronDefinition();
|
||||
G4NeutrinoE::NeutrinoEDefinition();
|
||||
G4AntiNeutrinoE::AntiNeutrinoEDefinition();
|
||||
G4MuonPlus::MuonPlusDefinition();
|
||||
G4MuonMinus::MuonMinusDefinition();
|
||||
G4NeutrinoMu::NeutrinoMuDefinition();
|
||||
G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void UltraPhysicsList::ConstructMesons()
|
||||
{
|
||||
// mesons
|
||||
G4PionPlus::PionPlusDefinition();
|
||||
G4PionMinus::PionMinusDefinition();
|
||||
G4PionZero::PionZeroDefinition();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void UltraPhysicsList::ConstructBaryons()
|
||||
{
|
||||
// barions
|
||||
G4Proton::ProtonDefinition();
|
||||
G4AntiProton::AntiProtonDefinition();
|
||||
G4Neutron::NeutronDefinition();
|
||||
G4AntiNeutron::AntiNeutronDefinition();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void UltraPhysicsList::ConstructProcess()
|
||||
{
|
||||
AddTransportation();
|
||||
ConstructGeneral();
|
||||
ConstructEM();
|
||||
ConstructOp();
|
||||
if (fEmPhysicsList)
|
||||
fEmPhysicsList->ConstructProcess();
|
||||
|
||||
}
|
||||
if (fOpPhysicsList)
|
||||
fOpPhysicsList->ConstructProcess();
|
||||
|
||||
if (fDecayPhysicsList)
|
||||
fDecayPhysicsList->ConstructProcess();
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#include "G4Decay.hh"
|
||||
|
||||
void UltraPhysicsList::ConstructGeneral()
|
||||
{
|
||||
G4Decay* theDecayProcess = new G4Decay();
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
if (theDecayProcess->IsApplicable(*particle)) {
|
||||
pmanager->AddDiscreteProcess(theDecayProcess);
|
||||
}
|
||||
for(size_t i=0; i<fHadronPhys.size(); ++i) {
|
||||
fHadronPhys[i]->ConstructProcess();
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4MuMultipleScattering.hh"
|
||||
#include "G4hMultipleScattering.hh"
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
|
||||
#include "G4MuIonisation.hh"
|
||||
#include "G4MuBremsstrahlung.hh"
|
||||
#include "G4MuPairProduction.hh"
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void UltraPhysicsList::ConstructEM()
|
||||
{
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
// gamma
|
||||
// Construct processes for gamma
|
||||
pmanager->AddDiscreteProcess(new G4GammaConversion());
|
||||
pmanager->AddDiscreteProcess(new G4ComptonScattering());
|
||||
pmanager->AddDiscreteProcess(new G4PhotoElectricEffect());
|
||||
|
||||
} else if (particleName == "e-") {
|
||||
//electron
|
||||
// Construct processes for electron
|
||||
pmanager->AddProcess(new G4eMultipleScattering(),-1,1,1);
|
||||
pmanager->AddProcess(new G4eIonisation(),-1,2,2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung(),-1,-1,3);
|
||||
|
||||
} else if (particleName == "e+") {
|
||||
//positron
|
||||
// Construct processes for positron
|
||||
pmanager->AddProcess(new G4eMultipleScattering(),-1,1,1);
|
||||
pmanager->AddProcess(new G4eIonisation(),-1,2,2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung(),-1,-1,3);
|
||||
pmanager->AddProcess(new G4eplusAnnihilation(),0,-1,4);
|
||||
|
||||
} else if( particleName == "mu+" ||
|
||||
particleName == "mu-" ) {
|
||||
//muon
|
||||
// Construct processes for muon
|
||||
pmanager->AddProcess(new G4MuMultipleScattering(),-1,1,1);
|
||||
pmanager->AddProcess(new G4MuIonisation(),-1,2,2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung(),-1,-1,3);
|
||||
pmanager->AddProcess(new G4MuPairProduction(),-1,-1,4);
|
||||
|
||||
} else {
|
||||
if ((particle->GetPDGCharge() != 0.0) &&
|
||||
(particle->GetParticleName() != "chargedgeantino")) {
|
||||
// all others charged particles except geantino
|
||||
pmanager->AddProcess(new G4hMultipleScattering(),-1,1,1);
|
||||
pmanager->AddProcess(new G4hIonisation(),-1,2,2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#include "G4Cerenkov.hh"
|
||||
#include "G4Scintillation.hh"
|
||||
#include "G4OpAbsorption.hh"
|
||||
#include "G4OpRayleigh.hh"
|
||||
#include "G4OpBoundaryProcess.hh"
|
||||
|
||||
void UltraPhysicsList::ConstructOp()
|
||||
{
|
||||
// this Cerenkov Process
|
||||
G4Cerenkov* theCerenkovProcess = new G4Cerenkov("Cerenkov");
|
||||
// this absorption process inside optical media
|
||||
G4OpAbsorption* theAbsorptionProcess = new G4OpAbsorption();
|
||||
// Rayleigh scattering for optical photons (aerogel radiators)
|
||||
G4OpRayleigh* theRayleighScatteringProcess = new G4OpRayleigh();
|
||||
// Boundary process definition Class
|
||||
G4OpBoundaryProcess* theBoundaryProcess = new G4OpBoundaryProcess();
|
||||
|
||||
// Chose level 0 (no verbose)
|
||||
theCerenkovProcess -> SetVerboseLevel(0);
|
||||
theAbsorptionProcess -> SetVerboseLevel(0);
|
||||
theRayleighScatteringProcess -> SetVerboseLevel(0);
|
||||
theBoundaryProcess -> SetVerboseLevel(0);
|
||||
|
||||
|
||||
// Chose MaxNumPhotons that can be generated. Lets ignore this for now
|
||||
// G4int MaxNumPhotons = 300;
|
||||
// theCerenkovProcess->SetMaxNumPhotonsPerStep(MaxNumPhotons);
|
||||
theCerenkovProcess->SetTrackSecondariesFirst(true);
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (theCerenkovProcess->IsApplicable(*particle)) {
|
||||
pmanager->AddProcess(theCerenkovProcess);
|
||||
pmanager->SetProcessOrdering(theCerenkovProcess,idxPostStep);
|
||||
}
|
||||
|
||||
|
||||
if (particleName == "opticalphoton") {
|
||||
G4cout << ">>>>>>>>>>>>>> AddDiscreteProcess to OpticalPhoton " << G4endl;
|
||||
pmanager->AddDiscreteProcess(theAbsorptionProcess);
|
||||
pmanager->AddDiscreteProcess(theRayleighScatteringProcess);
|
||||
pmanager->AddDiscreteProcess(theBoundaryProcess);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void UltraPhysicsList::SetCuts()
|
||||
{
|
||||
@@ -292,5 +140,3 @@ void UltraPhysicsList::SetCuts()
|
||||
// the default cut value for all particle types
|
||||
SetCutsWithDefault();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 96602 2016-04-25 13:28:48Z gcosmo $
|
||||
$Id: History 100660 2016-10-31 10:19:31Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -14,7 +14,11 @@ track of all tags.
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
|
||||
28-11-16 Gunter Folger (amsEcal-V10-02-01)
|
||||
- remove direct use of {a,the}ParticleIterator, use GetParticleTableIterator().
|
||||
fix required by clang39 on Linux and MAC
|
||||
|
||||
24-04-16 mma (amsEcal-V10-02-00)
|
||||
- PhysListEmStandard: use G4EmParameters
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-10-03-beta-01 (30-June-2016)
|
||||
Geant4 version Name: geant4-10-03 (9-December-2016)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
@@ -177,7 +177,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 10000
|
||||
User=11.92s Real=11.99s Sys=0s
|
||||
User=16.81s Real=16.83s Sys=0s
|
||||
|
||||
-------------------------------------------------------------
|
||||
---> The calorimeter is 9 Modules
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: DetectorConstruction.cc 83418 2014-08-21 15:30:47Z gcosmo $
|
||||
// $Id: DetectorConstruction.cc 101905 2016-12-07 11:34:39Z gunter $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -302,9 +302,9 @@ G4VPhysicalVolume* DetectorConstruction::ConstructCalorimeter()
|
||||
|
||||
// Visualization attributes
|
||||
//
|
||||
lvol_fiber->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
lvol_layer->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
lvol_world->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
lvol_fiber->SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
lvol_layer->SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
lvol_world->SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
|
||||
//always return the physical World
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: PhysListEmStandard.cc 96602 2016-04-25 13:28:48Z gcosmo $
|
||||
// $Id: PhysListEmStandard.cc 100660 2016-10-31 10:19:31Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -90,9 +90,10 @@ void PhysListEmStandard::ConstructProcess()
|
||||
|
||||
// Add standard EM Processes
|
||||
//
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
auto particleIterator=GetParticleIterator();
|
||||
particleIterator->reset();
|
||||
while( (*particleIterator)() ){
|
||||
G4ParticleDefinition* particle = particleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "gamma") {
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: PhysicsList.cc 83010 2014-07-24 14:53:07Z gcosmo $
|
||||
// $Id: PhysicsList.cc 100660 2016-10-31 10:19:31Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -113,9 +113,10 @@ void PhysicsList::ConstructProcess()
|
||||
G4Decay* fDecayProcess = new G4Decay();
|
||||
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
auto particleIterator=GetParticleIterator();
|
||||
particleIterator->reset();
|
||||
while( (*particleIterator)() ){
|
||||
G4ParticleDefinition* particle = particleIterator->value();
|
||||
if (fDecayProcess->IsApplicable(*particle))
|
||||
ph ->RegisterProcess(fDecayProcess, particle);
|
||||
}
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
// GEANT 4 - Brachytherapy example
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// Code developed by:
|
||||
// S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano, S.Guatelli
|
||||
// Code developed currently by:
|
||||
// S.Guatelli & D. Cutajar
|
||||
|
||||
//
|
||||
// *******************************
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4UIExecutive.hh"
|
||||
#include "BrachyFactoryIr.hh"
|
||||
|
||||
#include "BrachyActionInitialization.hh"
|
||||
|
||||
#ifdef ANALYSIS_USE
|
||||
@@ -79,18 +79,24 @@
|
||||
int main(int argc ,char ** argv)
|
||||
|
||||
{
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
G4MTRunManager* pRunManager = new G4MTRunManager;
|
||||
pRunManager->SetNumberOfThreads(4); // Is equal to 2 by default
|
||||
#else
|
||||
G4RunManager* pRunManager = new G4RunManager;
|
||||
#endif
|
||||
|
||||
G4int seed = 0;
|
||||
|
||||
G4Random::setTheSeed(seed);
|
||||
|
||||
G4cout << "***********************" << G4endl;
|
||||
G4cout << "*** " << seed << " ***" << G4endl;
|
||||
G4cout << "***********************" << G4endl;
|
||||
// Access to the Scoring Manager pointer
|
||||
|
||||
G4ScoringManager* scoringManager = G4ScoringManager::GetScoringManager();
|
||||
|
||||
|
||||
// Overwrite the default output file with user-defined one
|
||||
scoringManager->SetScoreWriter(new BrachyUserScoreWriter());
|
||||
|
||||
|
||||
@@ -59,9 +59,10 @@ target_link_libraries(Brachy ${Geant4_LIBRARIES})
|
||||
#
|
||||
|
||||
set(brachy_SCRIPTS
|
||||
IridiumSourceMacro.mac IodiumSourceMacro.mac LeipzigSourceMacro.mac VisualisationMacro.mac
|
||||
IodineSourceMacro.mac LeipzigSourceMacro.mac VisualisationMacro.mac
|
||||
macro.C iridium_source_primary.mac iodine_source_primary.mac iridium_source_leipzig_primary.mac
|
||||
plot_primary.C iridium_decay.mac iodine_decay.mac
|
||||
plot_primary.C iodine_decay.mac FlexiSourceMacro.mac
|
||||
TG43_relative_dose.C TG186SourceMacro.mac TG186_iridium_decay.mac
|
||||
)
|
||||
|
||||
foreach(_script ${brachy_SCRIPTS})
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
/control/verbose 1
|
||||
/tracking/verbose 0
|
||||
/run/verbose 0
|
||||
/event/verbose 0
|
||||
#### Define the geometry of the Flexi source
|
||||
/source/switch Flexi
|
||||
###### Generation of primary field
|
||||
#### Generate gamma deriving from radioactive decay
|
||||
/control/execute iridium_source_primary.mac
|
||||
# Scoring mesh is used to calculate
|
||||
# the energy deposition in the phantom
|
||||
/score/create/boxMesh boxMesh_4
|
||||
#
|
||||
# the voxels are 0.25 mm wide.
|
||||
/score/mesh/boxSize 10.0125 10.0125 0.0125 cm
|
||||
/score/mesh/nBin 801 801 1
|
||||
/score/quantity/energyDeposit eDep
|
||||
#
|
||||
/score/close
|
||||
#
|
||||
/score/list
|
||||
/run/beamOn 5000
|
||||
#
|
||||
# Dump scores to a file
|
||||
#
|
||||
/score/dumpQuantityToFile boxMesh_4 eDep EnergyDeposition_Flexi.out
|
||||
#
|
||||
@@ -1,5 +1,5 @@
|
||||
-------------------------------------------------------------------
|
||||
$Id: History 88769 2015-03-09 12:35:11Z gcosmo $
|
||||
$Id: History 100821 2016-11-02 15:21:34Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -8,6 +8,15 @@ $Id: History 88769 2015-03-09 12:35:11Z gcosmo $
|
||||
|
||||
Category History file
|
||||
---------------------
|
||||
1.11.2016 - S. Guatelli; brachy-V10-02-02
|
||||
Added comparison to reference data for the Flexisource
|
||||
Added Flexisurce and TG186 reference source; added method to calculate relative dose rate to compare to reference data
|
||||
|
||||
06.09.2016 - M. Asai; brachy-V10-02-01
|
||||
|
||||
04.09.2016 - M. Asai; brachy-V10-02-00
|
||||
Modify std::map<G4int, G4double*> to
|
||||
std::map<G4int, G4StatDouble*>
|
||||
|
||||
06.03.2015 - A. Dotti; brachy-V10-01-00
|
||||
Removing unnecessary instantiation of GPS in master
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
/control/verbose 1
|
||||
/tracking/verbose 0
|
||||
/run/verbose 0
|
||||
/event/verbose 0
|
||||
#### Define the geometry of the I-125 source
|
||||
/source/switch Iodine
|
||||
###### Generation of primary field
|
||||
#### Generate gamma deriving from radioactive decay
|
||||
/control/execute iodine_source_primary.mac
|
||||
#### ... or generate radioactive decay of iodine
|
||||
#/control/execute iodine_decay.mac
|
||||
#
|
||||
#
|
||||
# Scoring mesh is used to calculate
|
||||
# the energy deposition in the phantom
|
||||
/score/create/boxMesh boxMesh_2
|
||||
#
|
||||
#
|
||||
# the voxels are 0.25 mm wide.
|
||||
/score/mesh/boxSize 10.0125 10.0125 0.0125 cm
|
||||
/score/mesh/nBin 801 801 1
|
||||
#
|
||||
#
|
||||
/score/quantity/energyDeposit eDep
|
||||
#
|
||||
/score/close
|
||||
#
|
||||
/score/list
|
||||
/run/beamOn 1000
|
||||
#
|
||||
# Dump scores to a file
|
||||
#
|
||||
/score/dumpQuantityToFile boxMesh_2 eDep EnergyDeposition_iodine.out
|
||||
#
|
||||
@@ -8,15 +8,17 @@
|
||||
# the energy deposition in the phantom
|
||||
/score/create/boxMesh boxMesh_3
|
||||
#
|
||||
/score/mesh/boxSize 15. 15. 15. cm
|
||||
/score/mesh/nBin 300 300 300
|
||||
# the voxels are 0.25 mm wide.
|
||||
/score/mesh/boxSize 10.0125 10.0125 0.0125 cm
|
||||
/score/mesh/nBin 801 801 1
|
||||
#
|
||||
#
|
||||
/score/quantity/energyDeposit eDep
|
||||
#
|
||||
/score/close
|
||||
#
|
||||
/score/list
|
||||
/run/beamOn 100
|
||||
/run/beamOn 1000
|
||||
#
|
||||
# Dump scores to a file
|
||||
#
|
||||
|
||||
@@ -7,48 +7,59 @@
|
||||
---------------------
|
||||
|
||||
|
||||
The brachytherapy example is currently maintained and upgraded by Susanna Guatelli (1), with the support of
|
||||
Pablo Cirrone(2), Luciano Pandola (3), Dean Cutajar (1) and Stuart P. George (1)
|
||||
The brachytherapy example is currently maintained and upgraded by Susanna Guatelli (1) and Dean Cutajar (1), with the support of
|
||||
Luciano Pandola (2)
|
||||
|
||||
1. Centre For Medical Radiation Physics (CMRP), University of Wollongong, NSW, Australia.
|
||||
2. LNS, INFN, Catania, Italy.
|
||||
3. LNGS, INFN, Gran Sasso, Italy
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Contact: susanna@uow.edu.au
|
||||
deanc@uow.edu.au
|
||||
geant4-advanced-examples@cern.ch
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
List of authors:
|
||||
S. Agostinelli, F. Foppiano, S. Garelli, S. Guatelli, M. G. Pia, M. Tropeano
|
||||
List of past co-authors:
|
||||
S. George, S. Agostinelli, F. Foppiano, S. Garelli, M. G. Pia, M. Tropeano
|
||||
|
||||
-----------------------------------------------------------------
|
||||
----> Introduction.
|
||||
|
||||
Brachytherapy example simulates the energy deposit in a water phantom, produced by:
|
||||
1) Iridium source (endocavitary brachytherapy).
|
||||
2) Iodium source (interstitial brachytherapy).
|
||||
3) Leipzig Applicator (superficial brachytherapy).
|
||||
1) Iridium sources (Flexisource and TG186).
|
||||
2) Iodine source (Bebig Isoseed I-125).
|
||||
3) Leipzig Applicator with an iridium source (model from the Istituto Tumori, Genova, Italy).
|
||||
|
||||
The Flexisource, an Ir-192 source manufactured by Nucletron, an Elekta company, is a source commonly used for high dose rate brachytherapy treatments.
|
||||
The geometry of the Flexisource was adapted from D. Granero, J. Pérez-Calatayud, E. Casal, et al,
|
||||
"A dosimetric study on the Ir-192 high dose rate Flexisource", Med. Phys. 33 (12), 2006, 4578-82.
|
||||
|
||||
The TG186 source is a generic Ir-192 source created to provide developers of model based dose engines with a method of validating new dose calculation techniques.
|
||||
Details of the TG186 source may be obtained from Facundo Ballester, Åsa Carlsson Tedgren, Domingo Granero, et al,
|
||||
"A generic high-dose rate 192Ir brachytherapy source for evaluation of model-based dose calculations beyond the TG-43 formalism", Med. Phys. 42, 2015, 3048-62
|
||||
|
||||
In particular in this example it is shown how to:
|
||||
- model a radioactive source in terms of radiation field and geometry
|
||||
- model the radiation field with the General Particle Source
|
||||
- model the radiation field with the General Particle Source with two alternative methods:
|
||||
1) Define the energy spectrum of photons exiting the radioactive core
|
||||
2) Modelling the Radioactive decay
|
||||
- calculate the energy deposition in a phantom by means of the G4 scoring mesh
|
||||
- define the physics by means of a Geant4 Modular Physics List
|
||||
- switch different physics approaches to model electromagnetic physics
|
||||
- save results in an analysis ROOT file using the Geant4 analysis component.
|
||||
- save results in an analysis ROOT file
|
||||
- calculate the dose rate distribution along the main axis of the source
|
||||
- compare the calculated dose rate distribution to reference data. In the case of the example, the dose rate
|
||||
distribution of a Flexisource is compared to D. Granero, J. Pérez-Calatayud, E. Casal, et al,
|
||||
"A dosimetric study on the Ir-192 high dose rate Flexisource", Med. Phys. 33 (12), 2006, 4578-82.
|
||||
|
||||
The example can be executed in multithreading mode
|
||||
The example can be executed in multithreading mode.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
----> 1.Experimental set-up.
|
||||
|
||||
The default source is an Ir-131 source set in the center of the phantom.
|
||||
The phantom is a box with size 30 cm. The phantom is set in the World volume filled
|
||||
with air.
|
||||
|
||||
|
||||
The default source is a Ir-192 Flexisource set in the center of a water phantom with size 30 cm.
|
||||
The phantom is set in the World volume filled with air.
|
||||
|
||||
The primary radiation field is defined by means of the GeneralParticleSource
|
||||
-------------------------------------------------------------------------
|
||||
@@ -64,13 +75,11 @@ cmake -DWITH_ANALYSIS_USE=ON -DGeant4_DIR=/path/to/Geant4_installation /path/to/
|
||||
|
||||
The installation of ROOT is required (http://root.cern.ch/drupal/).
|
||||
|
||||
macro.C and plot_primary.C are provided to plot the results of the simulation, contained
|
||||
in the brachytherapy.root file.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
----> 3.How to run the example.
|
||||
|
||||
- Batch mode:
|
||||
$G4WORKDIR/bin/Linux-g++/Brachy FlexiSourceMacro.mac
|
||||
$G4WORKDIR/bin/Linux-g++/Brachy IridiumSourceMacro.mac
|
||||
$G4WORKDIR/bin/Linux-g++/Brachy IodiumSourceMacro.mac
|
||||
$G4WORKDIR/bin/Linux-g++/Brachy LeipzigSourceMacro.mac
|
||||
@@ -93,37 +102,83 @@ This radiation field is defined in:
|
||||
iodine_source_primary.mac and iridium_source_primary.mac
|
||||
|
||||
2) Model the radioactive Decay. The primary particle is the radionuclide.
|
||||
This option is modelled in iodine_decay.mac and iridium_decay.mac
|
||||
This option is modelled in iodine_decay.mac and TG186_iridium_decay.mac
|
||||
|
||||
The GPS macros are executed in IridiumSourceMacro.mac, IodiumSourceMacro.mac, LeipzigSourceMacro.mac
|
||||
------------------------------------------------------------------------
|
||||
----> 5. Scoring mesh
|
||||
The GPS macros are executed in VisualisationMacro.mac 9default, FlexiSourceMacro.mac, IodineSourceMacro.mac, LeipzigSourceMacro.mac
|
||||
|
||||
- The Flexisource is the default source of the example.
|
||||
- In VisualisationMacro.mac the source is the default one. iridium_source_primary.mac is executed to define the radiation field emerging from the iridium core.
|
||||
- In FlexiSourceMacro.mac the Flexi ir source geometry is selected via interactive command. The radiation field is defined in the iridium_source_primary.mac.
|
||||
- In IodineSourceMacro.mac, the Bebig Isoseed I-125 brachytherapy source is modelled. The radiation field is modelled in terms of emitted photons in iodine_source_primary.mac.
|
||||
Alternatively the radioactive decay of I can be modelled using teh macro iodine_decay.mac.
|
||||
- In LeipzigSourceMacro.mac, A Leipzig applicator (design provided by Istituto Tumori, Genova) is modelled. The iridium_source_leipzig_primary.mac defines the radiation field of the Ir core.
|
||||
- The TG186SourceMacro.mac models the reference bIr brachytherapy source. The radiation field can be either defined with the iridium_source_primary.mac (spectrum of the emitted photons) or with TG186_iridium_decay.mac (model of the Ir decay).
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
----> 5. Physics List
|
||||
|
||||
The electromagnetic Livermore Low Energy physics is active as well as the radioactive decay.
|
||||
The cut is 0.05 mm.
|
||||
|
||||
The scoring mesh is used to calculate the energy deposition in the voxels of the phantom,
|
||||
integrated over the whole run. The scoring mesh is defined in the input macro file (see IridiumSourceMacro.mac for example).
|
||||
The user can change the default output format of the scoring in the class BrachyUserScoreWriter.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
----> 6. Simulation output
|
||||
----> 6. Scoring mesh
|
||||
|
||||
The scoring mesh is used to calculate the energy deposition in the plane containing the source (z=0 plane)
|
||||
integrated over the whole run. The scoring mesh is defined in the input macro files.
|
||||
T
|
||||
he default output format of the scoring is changed in the class BrachyUserScoreWriter.
|
||||
The scoring mesh is fixed with a size of 20.025 cm along x and y. The bin size is 0.25 mm along x, y and z.
|
||||
|
||||
When running in interactive mode there is no scoring mesh.The user has to add it with appropriate UI
|
||||
|
||||
------------------------------------------------------------------------
|
||||
----> 7. Simulation output
|
||||
|
||||
The output is:
|
||||
|
||||
- ASCII file EnergyDeposition.out, with xx (mm), yy(mm), zz(mm), and energy deposition (keV), in the phantom.
|
||||
To limit the use of memory, the energy deposition is scored only in the plane containing the source, however this can be changed by the user.
|
||||
|
||||
By default:
|
||||
EnergyDeposition_iodine.out contains the Edep when Iodine source is selected
|
||||
EnergyDeposition_iridium.out contains the Edep when Iridium source is selected
|
||||
EnergyDeposition_Leipzig.out contains the Edep when the Iridium source with Leipzig applicator is selected
|
||||
EnergyDeposition_Flexi.out contains the Edep when the Flexi source is selected.
|
||||
EnergyDeposition_iodine.out contains the Edep when Iodine source is selected.
|
||||
EnergyDeposition_TG186.out contains the Edep when the TG186 source is selected.
|
||||
EnergyDeposition_Leipzig.out contains the Edep when the Iridium source with Leipzig applicator is selected.
|
||||
|
||||
- brachytherapy.root, containing
|
||||
- an ntuple with the 3D energy deposition in the phantom. The macro macro.C is provided as example
|
||||
- a 2D histogram with the energy deposition in the phantom. The macro macro.C is provided as example
|
||||
to open brachytherapy.root in ROOT interactive session and to plot the results of the simulation.
|
||||
The ROOT file will be created if the example is built with the WITH_ANALYSIS_USE=ON option (see section 2).
|
||||
- 1D histogram withe the plot of energy spectrum of gamma emitted by the radioactive decay when the Ir or I decay is modelled
|
||||
(see section 4). plot_primary.C is provided as example to open brachytherapy.root and to plot the energy spectra
|
||||
- 1D histogram withe the plot of energy spectrum of gamma emitted by the radioactive decay when gamma are generated directly as
|
||||
primary particles or whenthey derive from Radioactive Decay(see section 4).
|
||||
plot_primary.C is provided as example to open brachytherapy.root and to plot the energy spectra
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
----> 7.Visualisation
|
||||
----> 8.Visualisation
|
||||
|
||||
a macro is provided ad example of visualisation: VisualisationMacro.mac
|
||||
A macro is provided ad example of visualisation: VisualisationMacro.mac.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
-----> 9. Comparison to reference data
|
||||
|
||||
The ROOT macros macro.C and plot_primary.C are provided to plot the results of the simulation, contained
|
||||
in the brachytherapy.root file.
|
||||
|
||||
The ROOT macro TG43_relative_dose.C has brachytherapy.root as input file. It calculates the dose rate distribution along the main axis of
|
||||
the brachytherapy source. The dose rate is normalised to 1 at 1 cm distance from the centre.
|
||||
The output file is geant4_dose.txt with two columns:
|
||||
distance from the centre (cm) dose rate distribution
|
||||
|
||||
The user can then compare the dose rate distribution calculated with the example to reference data.
|
||||
|
||||
Directory "comparison":
|
||||
As an example, the dose rate distribution calculated with the Flexisource is compared to reference data from D. Granero, J. Pérez-Calatayud, E. Casal, et al,
|
||||
"A dosimetric study on the Ir-192 high dose rate Flexisource", Med. Phys. 33 (12), 2006, 4578-82.
|
||||
|
||||
The compare.C is a ROOT macro which reads the dose rate distribution calculated with the Flexisource (geant4.txt generated with the advanced example and 280 M histories ) against the reference.
|
||||
|
||||
The directory "comparison" contains:
|
||||
- the reference data, granero.txt
|
||||
- the data obtained in Geant4.10.3: geant4.txt, 280 M events. geant4.txt is obtained when executing the macro TG43_relative_dose.C
|
||||
- comparison.C - macro to read geant4.txt and granero.txt and compare them in the same plot
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
# The iridium source is the default option
|
||||
/control/verbose 1
|
||||
/tracking/verbose 0
|
||||
/run/verbose 0
|
||||
/event/verbose 0
|
||||
#
|
||||
# Scoring mesh is used to calculate
|
||||
# the energy deposition in the phantom
|
||||
/score/create/boxMesh boxMesh_1
|
||||
#
|
||||
# the voxels are 0.25 mm wide.
|
||||
/score/mesh/boxSize 10.0125 10.0125 0.0125 cm
|
||||
/score/mesh/nBin 801 801 1
|
||||
/score/quantity/energyDeposit eDep
|
||||
#
|
||||
/score/close
|
||||
#
|
||||
/score/list
|
||||
##### Primary radiation Field
|
||||
/control/execute iridium_source_primary.mac
|
||||
# Alternatively model the radioactive decay ...
|
||||
#/control/execute TG186_iridium_decay.mac
|
||||
/gps/pos/type Volume
|
||||
/gps/pos/shape Cylinder
|
||||
/gps/pos/radius 0.30 mm
|
||||
/gps/pos/halfz 1.75 mm
|
||||
/gps/pos/centre 0. 0. 0. mm
|
||||
/gps/ang/type iso
|
||||
################################################
|
||||
/run/beamOn 100
|
||||
#
|
||||
# Dump scores to a file
|
||||
#
|
||||
/score/dumpQuantityToFile boxMesh_1 eDep EnergyDeposition_TG186.out
|
||||
#
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
# Definition of the radiation field
|
||||
# by means of the General Particle Source
|
||||
# http://reat.space.qinetiq.com/gps/
|
||||
/gps/particle ion
|
||||
/gps/ion 77 192 77 0.
|
||||
/gps/energy 0. keV
|
||||
/gps/pos/type Volume
|
||||
/gps/pos/shape Cylinder
|
||||
/gps/pos/radius 0.30 mm
|
||||
/gps/pos/halfz 1.75 mm
|
||||
/gps/pos/centre 0. 0. 0. mm
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
// Create output file geant4_dose.txt with the dose rate distribution, calculated
|
||||
// with the simulation results containted in brachytherapy.root
|
||||
|
||||
gROOT -> Reset();
|
||||
TFile f("brachytherapy.root");
|
||||
|
||||
Double_t Seed_length = 0.35; //seed length in cm
|
||||
|
||||
Double_t EnergyMap[401]; //2D map of total energy in "radial distance (mm)" and "angle (5 degrees)"
|
||||
Int_t Voxels[401]; //the number of voxels used to provide dose to each element of the energy map
|
||||
Double_t normDose[401]; //Energy map divided by voxels used to make cell, normalised to energy deposition at 1cm, 90 degrees
|
||||
Double_t GeomFunction[401]; //Geometry Function, normalised to the geometry function at the reference point
|
||||
Double_t GeometryFunctionZero; //Geometry function at reference point, 1cm and 90 degrees
|
||||
Double_t beta; //beta angle for Geometry Function calculation
|
||||
Double_t R; //radial distance in cm
|
||||
Double_t K; //polar angle in radians
|
||||
Double_t Radial[401]; //radial dose function
|
||||
Double_t radius; //radius (mm)
|
||||
Int_t radInt; //nearest integer of radius (mm)
|
||||
Int_t numberOfBins=801;
|
||||
|
||||
for (int i=0; i <401; i++)
|
||||
{
|
||||
EnergyMap[i]=0.;
|
||||
Voxels[i]=0.;
|
||||
}
|
||||
|
||||
//Build Energy Deposition Map
|
||||
for (int k=0; k< numberOfBins; k++)
|
||||
{
|
||||
for (int m=0; m< numberOfBins; m++)
|
||||
{
|
||||
Double_t xx_histo = h20.GetXaxis()->GetBinCenter(k);
|
||||
Double_t yy_histo = h20.GetYaxis()->GetBinCenter(m);
|
||||
Double_t edep_histo=h20.GetBinContent(k, m);
|
||||
radius = sqrt(xx_histo*xx_histo+yy_histo*yy_histo);
|
||||
// if ((edep_histo!=0) && radius < 12. && radius > 9) std::cout << "histo: " << xx_histo << ", " << yy_histo
|
||||
// << ", radius: " << radius <<", edep: "<< edep_histo << std::endl;
|
||||
|
||||
if (radius != 0){
|
||||
radInt = TMath::Nint(4*radius);
|
||||
if ((radInt>0)&&(radInt<=400))
|
||||
{
|
||||
EnergyMap[radInt]+= edep_histo;
|
||||
Voxels[radInt]+= 1;
|
||||
// if (radius < 12. && radius > 9 && edep_histo!=0)std::cout<< "Radius: " << radius << ", radInt:"<<radInt << ", EnergyMap: "<< EnergyMap[radInt]<< ", voxels: " << Voxels[radInt]<< std::endl;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}}
|
||||
|
||||
std::cout << "Energy Map Complete" << std::endl;
|
||||
|
||||
//Create Normalised Dose Map
|
||||
std::cout << "The energy deposition at the reference point is " << EnergyMap[40] << std::endl;
|
||||
Double_t tempNormValue = EnergyMap[40]/Voxels[40];
|
||||
//value at 1cm, 90 degrees, the normalisation point
|
||||
std::cout << "Dose rate ditribution (distances in cm)" << std::endl;
|
||||
|
||||
ofstream myfile;
|
||||
|
||||
myfile.open ("geant4_dose.txt");
|
||||
|
||||
for (int i=0; i<=400; i++)
|
||||
{
|
||||
R = double(i)/40; //distance in CM!!!
|
||||
if (Voxels[i]>0) normDose[i] = EnergyMap[i]/Voxels[i]/tempNormValue;
|
||||
else normDose[i] = 0;
|
||||
|
||||
|
||||
|
||||
if (R> 0.05)
|
||||
{
|
||||
cout << R << " " << normDose[i] << endl;
|
||||
myfile << R << " " << normDose[i] << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
myfile.close();
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Use this open statement to create an OpenGL view:
|
||||
/vis/open OGL 600x600-0+0
|
||||
/vis/open OGLIX 600x600-0+0
|
||||
#
|
||||
# Use this open statement to create a .prim file suitable for
|
||||
# viewing in DAWN:
|
||||
@@ -66,6 +66,6 @@
|
||||
#
|
||||
# For file-based drivers, use this to create an empty detector view:
|
||||
#/vis/viewer/flush
|
||||
/control/execute IridiumSourceMacro.mac
|
||||
#/control/execute IodiumSourceMacro.mac
|
||||
#/control/execute LeipzigSourceMacro.mac
|
||||
# Flexi Ir source is the default
|
||||
/control/execute iridium_source_primary.mac
|
||||
|
||||
|
||||
@@ -4,15 +4,21 @@
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-10-03-beta-01 (30-June-2016)
|
||||
Geant4 version Name: geant4-10-03 (9-December-2016)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
*************************************************************
|
||||
|
||||
Checking overlaps for volume IridiumCapsulePhys ... OK!
|
||||
Checking overlaps for volume CapsuleTipIridiumPhys ... OK!
|
||||
Checking overlaps for volume IridiumCorePhys ... OK!
|
||||
***********************
|
||||
*** 0 ***
|
||||
***********************
|
||||
Checking overlaps for volume phys_steel_shell ... OK!
|
||||
Checking overlaps for volume phys_air_gap ... OK!
|
||||
Checking overlaps for volume phys_End1_steel_shell ... OK!
|
||||
Checking overlaps for volume phys_End2_steel_shell ... OK!
|
||||
Checking overlaps for volume phys_cable ... OK!
|
||||
Checking overlaps for volume phys_iridium_core ... OK!
|
||||
G4PhysicsListHelper::AddTransportation()--- G4CoupledTransportation is used
|
||||
Visualization Manager instantiating with verbosity "warnings (3)"...
|
||||
Visualization Manager initialising...
|
||||
@@ -45,14 +51,14 @@ Registered model factories:
|
||||
drawByCharge
|
||||
drawByOriginVolume
|
||||
drawByParticleID
|
||||
drawByTouchedVolume
|
||||
drawByEncounteredVolume
|
||||
|
||||
Registered filter factories:
|
||||
attributeFilter
|
||||
chargeFilter
|
||||
originVolumeFilter
|
||||
particleFilter
|
||||
touchedVolumeFilter
|
||||
encounteredVolumeFilter
|
||||
|
||||
You have successfully registered the following user vis actions.
|
||||
Run Duration User Vis Actions: none
|
||||
@@ -66,167 +72,277 @@ Available colours:
|
||||
/tracking/verbose 0
|
||||
/run/verbose 0
|
||||
/event/verbose 0
|
||||
/score/create/boxMesh boxMesh_1
|
||||
/score/mesh/boxSize 15. 15. 15. cm
|
||||
/score/mesh/nBin 300 300 300
|
||||
/source/switch Flexi
|
||||
Now the source is Flexi
|
||||
/run/geometryModified
|
||||
Old Source is deleted ...
|
||||
Checking overlaps for volume phys_steel_shell ... OK!
|
||||
Checking overlaps for volume phys_air_gap ... OK!
|
||||
Checking overlaps for volume phys_End1_steel_shell ... OK!
|
||||
Checking overlaps for volume phys_End2_steel_shell ... OK!
|
||||
Checking overlaps for volume phys_cable ... OK!
|
||||
Checking overlaps for volume phys_iridium_core ... OK!
|
||||
... New source is created ...
|
||||
/run/geometryModified
|
||||
... Geometry is notified .... THAT'S IT!!!!!
|
||||
/control/execute iridium_source_primary.mac
|
||||
/gps/ene/type Arb
|
||||
/gps/hist/type arb
|
||||
/gps/hist/point 0.0614 1e-8
|
||||
/gps/hist/point 0.0615 0.412
|
||||
/gps/hist/point 0.0616 1e-8
|
||||
/gps/hist/point 0.0629 1e-8
|
||||
/gps/hist/point 0.063 0.7039
|
||||
/gps/hist/point 0.0631 1e-8
|
||||
/gps/hist/point 0.0650 1e-8
|
||||
/gps/hist/point 0.0651 1.1309
|
||||
/gps/hist/point 0.0652 1e-8
|
||||
/gps/hist/point 0.0667 1e-8
|
||||
/gps/hist/point 0.0668 1.9178
|
||||
/gps/hist/point 0.0669 1e-8
|
||||
/gps/hist/point 0.0710 1e-8
|
||||
/gps/hist/point 0.0711 0.0827
|
||||
/gps/hist/point 0.0712 1e-8
|
||||
/gps/hist/point 0.0713 1e-8
|
||||
/gps/hist/point 0.0714 0.1600
|
||||
/gps/hist/point 0.0715 1e-8
|
||||
/gps/hist/point 0.0733 1e-8
|
||||
/gps/hist/point 0.0734 0.0560
|
||||
/gps/hist/point 0.0735 1e-8
|
||||
/gps/hist/point 0.0753 1e-8
|
||||
/gps/hist/point 0.0754 0.2292
|
||||
/gps/hist/point 0.0755 1e-8
|
||||
/gps/hist/point 0.0756 1e-8
|
||||
/gps/hist/point 0.0757 0.4408
|
||||
/gps/hist/point 0.0758 1e-8
|
||||
/gps/hist/point 0.0777 1e-8
|
||||
/gps/hist/point 0.0778 0.1570
|
||||
/gps/hist/point 0.0779 1e-8
|
||||
/gps/hist/point 0.1103 1e-8
|
||||
/gps/hist/point 0.1104 0.0042
|
||||
/gps/hist/point 0.1105 1e-8
|
||||
/gps/hist/point 0.1362 1e-8
|
||||
/gps/hist/point 0.1363 0.0860
|
||||
/gps/hist/point 0.1364 1e-8
|
||||
/gps/hist/point 0.1769 1e-8
|
||||
/gps/hist/point 0.1770 0.0018
|
||||
/gps/hist/point 0.1771 1e-8
|
||||
/gps/hist/point 0.2012 1e-8
|
||||
/gps/hist/point 0.2013 0.1624
|
||||
/gps/hist/point 0.2014 1e-8
|
||||
/gps/hist/point 0.2057 1e-8
|
||||
/gps/hist/point 0.2058 1.1468
|
||||
/gps/hist/point 0.2059 1e-8
|
||||
/gps/hist/point 0.2802 1e-8
|
||||
/gps/hist/point 0.2803 0.0039
|
||||
/gps/hist/point 0.2804 1e-8
|
||||
/gps/hist/point 0.2832 1e-8
|
||||
/gps/hist/point 0.2833 0.0913
|
||||
/gps/hist/point 0.2834 1e-8
|
||||
/gps/hist/point 0.2959 1e-8
|
||||
/gps/hist/point 0.2960 12.3498
|
||||
/gps/hist/point 0.2961 1e-8
|
||||
/gps/hist/point 0.3084 1e-8
|
||||
/gps/hist/point 0.3085 12.7626
|
||||
/gps/hist/point 0.3086 1e-8
|
||||
/gps/hist/point 0.3164 1e-8
|
||||
/gps/hist/point 0.3165 35.5660
|
||||
/gps/hist/point 0.3166 1e-8
|
||||
/gps/hist/point 0.3291 1e-8
|
||||
/gps/hist/point 0.3292 0.0060
|
||||
/gps/hist/point 0.3293 1e-8
|
||||
/gps/hist/point 0.3744 1e-8
|
||||
/gps/hist/point 0.3745 0.2493
|
||||
/gps/hist/point 0.3746 1e-8
|
||||
/gps/hist/point 0.4164 1e-8
|
||||
/gps/hist/point 0.4165 0.2877
|
||||
/gps/hist/point 0.4166 1e-8
|
||||
/gps/hist/point 0.4204 1e-8
|
||||
/gps/hist/point 0.4205 0.0237
|
||||
/gps/hist/point 0.4206 1e-8
|
||||
/gps/hist/point 0.4680 1e-8
|
||||
/gps/hist/point 0.4681 20.5587
|
||||
/gps/hist/point 0.4682 1e-8
|
||||
/gps/hist/point 0.4845 1e-8
|
||||
/gps/hist/point 0.4846 1.0942
|
||||
/gps/hist/point 0.4847 1e-8
|
||||
/gps/hist/point 0.4852 1e-8
|
||||
/gps/hist/point 0.4853 0.0010
|
||||
/gps/hist/point 0.4854 1e-8
|
||||
/gps/hist/point 0.4890 1e-8
|
||||
/gps/hist/point 0.4891 0.1504
|
||||
/gps/hist/point 0.4892 1e-8
|
||||
/gps/hist/point 0.5885 1e-8
|
||||
/gps/hist/point 0.5886 1.9423
|
||||
/gps/hist/point 0.5887 1e-8
|
||||
/gps/hist/point 0.5934 1e-8
|
||||
/gps/hist/point 0.5935 0.0181
|
||||
/gps/hist/point 0.5936 1e-8
|
||||
/gps/hist/point 0.5993 1e-8
|
||||
/gps/hist/point 0.5994 0.0017
|
||||
/gps/hist/point 0.5995 1e-8
|
||||
/gps/hist/point 0.6043 1e-8
|
||||
/gps/hist/point 0.6044 3.5361
|
||||
/gps/hist/point 0.6045 1e-8
|
||||
/gps/hist/point 0.6124 1e-8
|
||||
/gps/hist/point 0.6125 2.2962
|
||||
/gps/hist/point 0.6126 1e-8
|
||||
/gps/hist/point 0.7038 1e-8
|
||||
/gps/hist/point 0.7039 0.0018
|
||||
/gps/hist/point 0.7040 1e-8
|
||||
/gps/hist/point 0.7657 1e-8
|
||||
/gps/hist/point 0.7658 0.0006
|
||||
/gps/hist/point 0.7659 1e-8
|
||||
/gps/hist/point 0.8844 1e-8
|
||||
/gps/hist/point 0.8845 0.1251
|
||||
/gps/hist/point 0.8846 1e-8
|
||||
/gps/hist/point 1.0614 1e-8
|
||||
/gps/hist/point 1.0615 0.0228
|
||||
/gps/hist/point 1.0616 1e-8
|
||||
/gps/hist/point 1.0898 1e-8
|
||||
/gps/hist/point 1.0899 0.0005
|
||||
/gps/hist/point 1.0890 1e-8
|
||||
/gps/hist/point 1.3781 1e-8
|
||||
/gps/hist/point 1.3782 0.0005
|
||||
/gps/hist/point 1.3783 1e-8
|
||||
/gps/hist/inter Lin
|
||||
/gps/particle gamma
|
||||
/gps/pos/type Volume
|
||||
/gps/pos/shape Cylinder
|
||||
/gps/pos/radius 0.30 mm
|
||||
/gps/pos/halfz 1.75 mm
|
||||
/gps/pos/centre 0. 0. 0. mm
|
||||
/gps/ang/type iso
|
||||
/score/create/boxMesh boxMesh_4
|
||||
/score/mesh/boxSize 10.0125 10.0125 0.0125 cm
|
||||
/score/mesh/nBin 801 801 1
|
||||
.... G4ScoringMessenger::MeshBinCommand - G4ScoringBox
|
||||
/score/quantity/energyDeposit eDep
|
||||
/score/close
|
||||
/score/list
|
||||
G4ScoringManager has 1 scoring meshes.
|
||||
G4ScoringBox : boxMesh_1 --- Shape: Box mesh
|
||||
Size (x, y, z): (15, 15, 15) [cm]
|
||||
# of segments: (300, 300, 300)
|
||||
G4ScoringBox : boxMesh_4 --- Shape: Box mesh
|
||||
Size (x, y, z): (10.0125, 10.0125, 0.0125) [cm]
|
||||
# of segments: (801, 801, 1)
|
||||
displacement: (0, 0, 0) [cm]
|
||||
registered primitve scorers :
|
||||
0 eDep
|
||||
/control/execute iridium_source_primary.mac
|
||||
/gps/particle gamma
|
||||
/gps/energy 356.0 keV
|
||||
/gps/pos/type Volume
|
||||
/gps/pos/shape Cylinder
|
||||
/gps/pos/radius 0.30 mm
|
||||
/gps/pos/halfz 1.75 mm
|
||||
/gps/pos/centre 0. 0. -1.975 mm
|
||||
/gps/ang/type iso
|
||||
/run/beamOn 1000
|
||||
/run/beamOn 5000
|
||||
/run/geometryModified
|
||||
|
||||
### === Deexcitation model UAtomDeexcitation is activated for 1 region:
|
||||
DefaultRegionForTheWorld 1 1 0
|
||||
### === Auger cascade flag: 0
|
||||
### === Ignore cuts flag: 0
|
||||
### === Auger cascade flag: 1
|
||||
### === Ignore cuts flag: 1
|
||||
|
||||
phot: for gamma SubType= 12 BuildTable= 0
|
||||
LambdaPrime table from 200 keV to 10 TeV in 154 bins
|
||||
LambdaPrime table from 200 keV to 1 TeV in 134 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermorePhElectric : Emin= 0 eV Emax= 10 TeV AngularGenSauterGavrila FluoActive
|
||||
LivermorePhElectric : Emin= 0 eV Emax= 1 TeV AngularGenSauterGavrila FluoActive
|
||||
|
||||
compt: for gamma SubType= 13 BuildTable= 1
|
||||
Lambda table from 100 eV to 1 MeV, 20 bins per decade, spline: 1
|
||||
LambdaPrime table from 1 MeV to 10 TeV in 140 bins
|
||||
LambdaPrime table from 1 MeV to 1 TeV in 120 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LowEPComptonModel : Emin= 0 eV Emax= 20 MeV FluoActive
|
||||
KleinNishina : Emin= 20 MeV Emax= 10 TeV FluoActive
|
||||
LivermoreCompton : Emin= 0 eV Emax= 1 TeV FluoActive
|
||||
|
||||
conv: for gamma SubType= 14 BuildTable= 1
|
||||
Lambda table from 1.022 MeV to 10 TeV, 20 bins per decade, spline: 1
|
||||
Lambda table from 1.022 MeV to 1 TeV, 22 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PenConversion : Emin= 0 eV Emax= 80 GeV
|
||||
BetheHeitlerLPM : Emin= 80 GeV Emax= 10 TeV
|
||||
LivermoreConversion : Emin= 0 eV Emax= 80 GeV
|
||||
BetheHeitlerLPM : Emin= 80 GeV Emax= 1 TeV
|
||||
|
||||
Rayl: for gamma SubType= 11 BuildTable= 1
|
||||
Lambda table from 100 eV to 100 keV, 20 bins per decade, spline: 0
|
||||
LambdaPrime table from 100 keV to 10 TeV in 160 bins
|
||||
LambdaPrime table from 100 keV to 1 TeV in 140 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermoreRayleigh : Emin= 0 eV Emax= 10 TeV CullenGenerator
|
||||
LivermoreRayleigh : Emin= 0 eV Emax= 1 TeV CullenGenerator
|
||||
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.02, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 120 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 100 bins Emin= 100 MeV Emax= 10 TeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 1 TeV Table with 80 bins Emin= 100 MeV Emax= 1 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PenIoni : Emin= 0 eV Emax= 1 MeV
|
||||
MollerBhabha : Emin= 1 MeV Emax= 10 TeV deltaVI
|
||||
LowEnergyIoni : Emin= 0 eV Emax= 100 keV deltaVI
|
||||
MollerBhabha : Emin= 100 keV Emax= 1 TeV deltaVI
|
||||
|
||||
eBrem: for e- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS
|
||||
|
||||
ePairProd: for e- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 21x1001 from 0.1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
LowEnBrem : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 1 TeV DipBustGen
|
||||
|
||||
CoulombScat: for e-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from 100 MeV to 10 TeV, 20 bins per decade, spline: 1
|
||||
Lambda table from 100 MeV to 1 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 10 TeV
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 1 TeV
|
||||
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.02, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 120 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 100 bins Emin= 100 MeV Emax= 10 TeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 1 TeV Table with 80 bins Emin= 100 MeV Emax= 1 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PenIoni : Emin= 0 eV Emax= 1 MeV
|
||||
MollerBhabha : Emin= 1 MeV Emax= 10 TeV deltaVI
|
||||
MollerBhabha : Emin= 0 eV Emax= 1 TeV deltaVI
|
||||
|
||||
eBrem: for e+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS
|
||||
|
||||
ePairProd: for e+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 21x1001 from 0.1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen
|
||||
eBremLPM : Emin= 1 GeV Emax= 1 TeV DipBustGen
|
||||
|
||||
annihil: for e+, integral: 1 SubType= 5 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eplus2gg : Emin= 0 eV Emax= 10 TeV
|
||||
eplus2gg : Emin= 0 eV Emax= 1 TeV
|
||||
|
||||
CoulombScat: for e+, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from 100 MeV to 10 TeV, 20 bins per decade, spline: 1
|
||||
Lambda table from 100 MeV to 1 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 10 TeV
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 1 TeV
|
||||
|
||||
msc: for proton SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 1 TeV Table with 200 bins Emin= 100 eV Emax= 1 TeV
|
||||
|
||||
hIoni: for proton SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 10 TeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 1 TeV deltaVI
|
||||
|
||||
hBrems: for proton SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
hBrem : Emin= 0 eV Emax= 1 TeV
|
||||
===== Limit on energy threshold has been applied
|
||||
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 9x1001 from 7.50618 GeV to 1 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for proton, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of anti_proton
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
hPairProd : Emin= 0 eV Emax= 1 TeV
|
||||
|
||||
nuclearStopping: for proton SubType= 8 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
@@ -235,314 +351,275 @@ nuclearStopping: for proton SubType= 8 BuildTable= 0
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 1 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.001, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ParamICRU73 : Emin= 0 eV Emax= 10 TeV deltaVI
|
||||
ParamICRU73 : Emin= 0 eV Emax= 1 TeV deltaVI
|
||||
|
||||
nuclearStopping: for GenericIon SubType= 8 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 1 TeV Table with 200 bins Emin= 100 eV Emax= 1 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BraggIon : Emin= 0 eV Emax= 7.9452 MeV deltaVI
|
||||
BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV deltaVI
|
||||
BetheBloch : Emin= 7.9452 MeV Emax= 1 TeV deltaVI
|
||||
|
||||
nuclearStopping: for alpha SubType= 8 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for anti_proton SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 1 TeV Table with 200 bins Emin= 100 eV Emax= 1 TeV
|
||||
|
||||
hIoni: for anti_proton SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 10 TeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 1 TeV deltaVI
|
||||
|
||||
hBrems: for anti_proton SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
hBrem : Emin= 0 eV Emax= 1 TeV
|
||||
===== Limit on energy threshold has been applied
|
||||
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 9x1001 from 7.50618 GeV to 1 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for anti_proton, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
hPairProd : Emin= 0 eV Emax= 1 TeV
|
||||
|
||||
nuclearStopping: for anti_proton SubType= 8 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for kaon+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 1 TeV Table with 200 bins Emin= 100 eV Emax= 1 TeV
|
||||
|
||||
hIoni: for kaon+ SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 1.05231 MeV deltaVI
|
||||
BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV deltaVI
|
||||
BetheBloch : Emin= 1.05231 MeV Emax= 1 TeV deltaVI
|
||||
|
||||
hBrems: for kaon+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
hBrem : Emin= 0 eV Emax= 1 TeV
|
||||
===== Limit on energy threshold has been applied
|
||||
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 10x1001 from 3.94942 GeV to 1 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for kaon+, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
hPairProd : Emin= 0 eV Emax= 1 TeV
|
||||
|
||||
msc: for kaon- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 1 TeV Table with 200 bins Emin= 100 eV Emax= 1 TeV
|
||||
|
||||
hIoni: for kaon- SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 1.05231 MeV deltaVI
|
||||
BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV deltaVI
|
||||
BetheBloch : Emin= 1.05231 MeV Emax= 1 TeV deltaVI
|
||||
|
||||
hBrems: for kaon- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
hBrem : Emin= 0 eV Emax= 1 TeV
|
||||
===== Limit on energy threshold has been applied
|
||||
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 10x1001 from 3.94942 GeV to 1 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for kaon-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of kaon+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
hPairProd : Emin= 0 eV Emax= 1 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 1 TeV Table with 200 bins Emin= 100 eV Emax= 1 TeV
|
||||
|
||||
muIoni: for mu+ SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 10 TeV
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 1 TeV
|
||||
|
||||
muBrems: for mu+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 10 TeV
|
||||
MuBrem : Emin= 0 eV Emax= 1 TeV
|
||||
===== Limit on energy threshold has been applied
|
||||
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 13x1001 from 1 GeV to 1 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
muPairProd : Emin= 0 eV Emax= 1 TeV
|
||||
|
||||
CoulombScat: for mu+, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Lambda table from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
eCoulombScattering : Emin= 0 eV Emax= 1 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 1 TeV Table with 200 bins Emin= 100 eV Emax= 1 TeV
|
||||
|
||||
muIoni: for mu- SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 10 TeV
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 1 TeV
|
||||
|
||||
muBrems: for mu- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 10 TeV
|
||||
MuBrem : Emin= 0 eV Emax= 1 TeV
|
||||
===== Limit on energy threshold has been applied
|
||||
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 13x1001 from 1 GeV to 1 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
muPairProd : Emin= 0 eV Emax= 1 TeV
|
||||
|
||||
CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of mu+
|
||||
Lambda table from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
eCoulombScattering : Emin= 0 eV Emax= 1 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 1 TeV Table with 200 bins Emin= 100 eV Emax= 1 TeV
|
||||
|
||||
hIoni: for pi+ SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 297.505 keV deltaVI
|
||||
BetheBloch : Emin= 297.505 keV Emax= 10 TeV deltaVI
|
||||
BetheBloch : Emin= 297.505 keV Emax= 1 TeV deltaVI
|
||||
|
||||
hBrems: for pi+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
hBrem : Emin= 0 eV Emax= 1 TeV
|
||||
===== Limit on energy threshold has been applied
|
||||
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 12x1001 from 1.11656 GeV to 1 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for pi+, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
hPairProd : Emin= 0 eV Emax= 1 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 1 TeV Table with 200 bins Emin= 100 eV Emax= 1 TeV
|
||||
|
||||
hIoni: for pi- SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 297.505 keV deltaVI
|
||||
BetheBloch : Emin= 297.505 keV Emax= 10 TeV deltaVI
|
||||
BetheBloch : Emin= 297.505 keV Emax= 1 TeV deltaVI
|
||||
|
||||
hBrems: for pi- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
hBrem : Emin= 0 eV Emax= 1 TeV
|
||||
===== Limit on energy threshold has been applied
|
||||
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
dE/dx and range tables from 100 eV to 1 TeV in 200 bins
|
||||
Lambda tables from threshold to 1 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 12x1001 from 1.11656 GeV to 1 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of pi+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
hPairProd : Emin= 0 eV Emax= 1 TeV
|
||||
|
||||
========= Table of registered couples ==============================
|
||||
|
||||
Index : 0 used in the geometry : Yes
|
||||
Material : Air
|
||||
Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um
|
||||
Energy thresholds : gamma 250 eV e- 250 eV e+ 250 eV proton 10 keV
|
||||
Range cuts : gamma 50 um e- 50 um e+ 50 um proton 50 um
|
||||
Energy thresholds : gamma 250 eV e- 250 eV e+ 250 eV proton 5 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 1 used in the geometry : Yes
|
||||
Material : Water
|
||||
Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um
|
||||
Energy thresholds : gamma 1.10692 keV e- 84.8775 keV e+ 84.2607 keV proton 10 keV
|
||||
Range cuts : gamma 50 um e- 50 um e+ 50 um proton 50 um
|
||||
Energy thresholds : gamma 250 eV e- 57.2461 keV e+ 56.4171 keV proton 5 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 2 used in the geometry : Yes
|
||||
Material : Stainless steel
|
||||
Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um
|
||||
Energy thresholds : gamma 6.28038 keV e- 237.363 keV e+ 232.226 keV proton 10 keV
|
||||
Material : Stainless steel 304
|
||||
Range cuts : gamma 50 um e- 50 um e+ 50 um proton 50 um
|
||||
Energy thresholds : gamma 4.39316 keV e- 154.358 keV e+ 151.017 keV proton 5 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 3 used in the geometry : Yes
|
||||
Material : Iridium
|
||||
Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um
|
||||
Energy thresholds : gamma 42.7607 keV e- 386.935 keV e+ 373.078 keV proton 10 keV
|
||||
Range cuts : gamma 50 um e- 50 um e+ 50 um proton 50 um
|
||||
Energy thresholds : gamma 26.8116 keV e- 240.851 keV e+ 233.926 keV proton 5 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
====================================================================
|
||||
|
||||
|
||||
-------- WWWW ------- G4Exception-START -------- WWWW -------
|
||||
*** G4Exception : de0001
|
||||
issued by : G4AtomicTransitionManager::Shell()
|
||||
No de-excitation for Z= 77 shellIndex= 21>= numberOfShells= 21 AtomicShell not found
|
||||
|
||||
*** This is just a warning message. ***
|
||||
-------- WWWW -------- G4Exception-END --------- WWWW -------
|
||||
|
||||
/score/dumpQuantityToFile boxMesh_1 eDep EnergyDeposition_iridium.out
|
||||
/score/dumpQuantityToFile boxMesh_4 eDep EnergyDeposition_Flexi.out
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
// Read reference data in granero.txt
|
||||
FILE *fg1=fopen("granero.txt", "r");
|
||||
Int_t n_points_granero =13;
|
||||
Float_t x1[n_points_granero], y1[n_points_granero];
|
||||
Float_t x, y;
|
||||
Int_t ncols_granero;
|
||||
Int_t nlines1 =0;
|
||||
|
||||
while(1)
|
||||
{
|
||||
ncols_granero = fscanf(fg1,"%f %f",&x, &y);
|
||||
if (ncols_granero<0) break;
|
||||
// std::cout << "x " << x << std::endl;
|
||||
x1[nlines1]=x;
|
||||
y1[nlines1]=y;
|
||||
nlines1++;
|
||||
}
|
||||
|
||||
fclose(fg1);
|
||||
|
||||
// Read the results of the brachytherapy advanced example
|
||||
// FlexiSorceMacro.mac with 280 M events
|
||||
FILE *fg2=fopen("geant4.txt", "r");
|
||||
Int_t n_points_geant4 =398;
|
||||
Float_t x2[n_points_geant4], y2[n_points_geant4];
|
||||
Int_t ncols_geant4;
|
||||
Int_t nlines2 =0;
|
||||
|
||||
while(1)
|
||||
{
|
||||
ncols_geant4 = fscanf(fg2,"%f %f",&x, &y);
|
||||
if (ncols_geant4<0) break;
|
||||
// std::cout << "x " << x << std::endl;
|
||||
x2[nlines2]=x;
|
||||
y2[nlines2]=y;
|
||||
nlines2++;
|
||||
}
|
||||
|
||||
fclose(fg2);
|
||||
|
||||
TGraph *gr1 = new TGraph (nlines1, x1, y1);
|
||||
TGraph *gr2 = new TGraph (nlines2, x2, y2);
|
||||
|
||||
TCanvas *c1 = new TCanvas("c1","Graph Draw Options",
|
||||
200,10,600,400);
|
||||
|
||||
gPad->SetLogy();
|
||||
|
||||
// draw the graph with axis, continuous line, and put
|
||||
// a * at each point
|
||||
gr1->SetTitle("Dose rate distribution");
|
||||
gr1-> GetXaxis()->SetTitle("Distance from the centre (cm)");
|
||||
gr1->GetYaxis()->SetTitle("Normalised dose rate distribution");
|
||||
gr1->SetLineWidth(1);
|
||||
gr1->SetMarkerColor(1);
|
||||
gr1->SetMarkerStyle(20);
|
||||
gr1->Draw("AP");
|
||||
|
||||
gr2->SetLineWidth(1);
|
||||
gr2->SetMarkerColor(2);
|
||||
gr2->SetMarkerStyle(21);
|
||||
gr2->SetMarkerSize(0.5);
|
||||
gr2->SetLineColor(2);
|
||||
gr2->Draw("CP");
|
||||
|
||||
TLegend *leg = new TLegend(0.3, 0.5, 0.6, 0.8);
|
||||
leg->SetFillColor(0);
|
||||
leg->AddEntry(gr1, "Reference data", "lp");
|
||||
leg->AddEntry(gr2, "Geant4 - 280 M events", "lp");
|
||||
leg->Draw();
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,399 @@
|
||||
0.075 92.5482
|
||||
0.1 61.081
|
||||
0.125 42.2201
|
||||
0.15 32.382
|
||||
0.175 25.6088
|
||||
0.2 20.5267
|
||||
0.225 16.6291
|
||||
0.25 13.7179
|
||||
0.275 11.7002
|
||||
0.3 10.1013
|
||||
0.325 8.73055
|
||||
0.35 7.58775
|
||||
0.375 6.71141
|
||||
0.4 5.89945
|
||||
0.425 5.1757
|
||||
0.45 4.60221
|
||||
0.475 4.19173
|
||||
0.5 3.84259
|
||||
0.525 3.52283
|
||||
0.55 3.20597
|
||||
0.575 2.93226
|
||||
0.6 2.70921
|
||||
0.625 2.47644
|
||||
0.65 2.31611
|
||||
0.675 2.19369
|
||||
0.7 2.00825
|
||||
0.725 1.86949
|
||||
0.75 1.75933
|
||||
0.775 1.633
|
||||
0.8 1.54987
|
||||
0.825 1.48124
|
||||
0.85 1.38395
|
||||
0.875 1.31205
|
||||
0.9 1.226
|
||||
0.925 1.13944
|
||||
0.95 1.09959
|
||||
0.975 1.04101
|
||||
1 1
|
||||
1.025 0.934527
|
||||
1.05 0.899698
|
||||
1.075 0.863664
|
||||
1.1 0.810286
|
||||
1.125 0.780294
|
||||
1.15 0.761658
|
||||
1.175 0.733473
|
||||
1.2 0.68684
|
||||
1.225 0.66871
|
||||
1.25 0.637654
|
||||
1.275 0.615485
|
||||
1.3 0.597355
|
||||
1.325 0.581979
|
||||
1.35 0.553809
|
||||
1.375 0.540777
|
||||
1.4 0.50306
|
||||
1.425 0.497341
|
||||
1.45 0.470977
|
||||
1.475 0.455565
|
||||
1.5 0.44728
|
||||
1.525 0.424859
|
||||
1.55 0.416075
|
||||
1.575 0.404703
|
||||
1.6 0.400799
|
||||
1.625 0.388543
|
||||
1.65 0.369173
|
||||
1.675 0.354002
|
||||
1.7 0.350087
|
||||
1.725 0.335543
|
||||
1.75 0.323122
|
||||
1.775 0.310902
|
||||
1.8 0.311182
|
||||
1.825 0.298186
|
||||
1.85 0.29138
|
||||
1.875 0.285955
|
||||
1.9 0.275596
|
||||
1.925 0.268234
|
||||
1.95 0.265886
|
||||
1.975 0.262682
|
||||
2 0.250182
|
||||
2.025 0.240716
|
||||
2.05 0.237506
|
||||
2.075 0.232205
|
||||
2.1 0.220832
|
||||
2.125 0.219701
|
||||
2.15 0.212265
|
||||
2.175 0.212666
|
||||
2.2 0.21221
|
||||
2.225 0.207341
|
||||
2.25 0.200297
|
||||
2.275 0.192517
|
||||
2.3 0.189886
|
||||
2.325 0.192858
|
||||
2.35 0.182024
|
||||
2.375 0.176782
|
||||
2.4 0.177839
|
||||
2.425 0.172011
|
||||
2.45 0.171562
|
||||
2.475 0.161152
|
||||
2.5 0.1637
|
||||
2.525 0.161618
|
||||
2.55 0.152274
|
||||
2.575 0.155768
|
||||
2.6 0.151609
|
||||
2.625 0.147213
|
||||
2.65 0.142626
|
||||
2.675 0.141163
|
||||
2.7 0.135075
|
||||
2.725 0.137097
|
||||
2.75 0.132081
|
||||
2.775 0.129722
|
||||
2.8 0.129826
|
||||
2.825 0.12782
|
||||
2.85 0.125443
|
||||
2.875 0.123756
|
||||
2.9 0.119346
|
||||
2.925 0.120319
|
||||
2.95 0.115285
|
||||
2.975 0.114092
|
||||
3 0.109567
|
||||
3.025 0.110225
|
||||
3.05 0.109222
|
||||
3.075 0.105549
|
||||
3.1 0.101985
|
||||
3.125 0.102391
|
||||
3.15 0.101265
|
||||
3.175 0.0969858
|
||||
3.2 0.102007
|
||||
3.225 0.0955804
|
||||
3.25 0.0950316
|
||||
3.275 0.0948826
|
||||
3.3 0.0938242
|
||||
3.325 0.0912915
|
||||
3.35 0.0903772
|
||||
3.375 0.0905475
|
||||
3.4 0.0902642
|
||||
3.425 0.0858565
|
||||
3.45 0.0849508
|
||||
3.475 0.0836775
|
||||
3.5 0.0822695
|
||||
3.525 0.0803858
|
||||
3.55 0.0784546
|
||||
3.575 0.0795886
|
||||
3.6 0.0769547
|
||||
3.625 0.0795712
|
||||
3.65 0.0766047
|
||||
3.675 0.076652
|
||||
3.7 0.0741164
|
||||
3.725 0.0734218
|
||||
3.75 0.0724564
|
||||
3.775 0.0712286
|
||||
3.8 0.0701183
|
||||
3.825 0.0707867
|
||||
3.85 0.069253
|
||||
3.875 0.0693129
|
||||
3.9 0.0663738
|
||||
3.925 0.0660028
|
||||
3.95 0.0630596
|
||||
3.975 0.0647959
|
||||
4 0.0613724
|
||||
4.025 0.0626113
|
||||
4.05 0.0600383
|
||||
4.075 0.0583234
|
||||
4.1 0.0589922
|
||||
4.125 0.0578909
|
||||
4.15 0.0579463
|
||||
4.175 0.0581601
|
||||
4.2 0.0584712
|
||||
4.225 0.0569214
|
||||
4.25 0.0543628
|
||||
4.275 0.0550252
|
||||
4.3 0.0541416
|
||||
4.325 0.0539681
|
||||
4.35 0.0534594
|
||||
4.375 0.0535902
|
||||
4.4 0.0510096
|
||||
4.425 0.0505026
|
||||
4.45 0.05093
|
||||
4.475 0.0509179
|
||||
4.5 0.0498966
|
||||
4.525 0.0493014
|
||||
4.55 0.0495339
|
||||
4.575 0.047684
|
||||
4.6 0.0484427
|
||||
4.625 0.0474193
|
||||
4.65 0.0469908
|
||||
4.675 0.0434269
|
||||
4.7 0.0467573
|
||||
4.725 0.0459587
|
||||
4.75 0.0443236
|
||||
4.775 0.0430312
|
||||
4.8 0.0418097
|
||||
4.825 0.0435871
|
||||
4.85 0.0427116
|
||||
4.875 0.0434484
|
||||
4.9 0.0412426
|
||||
4.925 0.0399403
|
||||
4.95 0.0402377
|
||||
4.975 0.0389141
|
||||
5 0.0403137
|
||||
5.025 0.0395411
|
||||
5.05 0.0394111
|
||||
5.075 0.0389278
|
||||
5.1 0.038083
|
||||
5.125 0.037606
|
||||
5.15 0.0373077
|
||||
5.175 0.0373318
|
||||
5.2 0.0364357
|
||||
5.225 0.0360548
|
||||
5.25 0.0362449
|
||||
5.275 0.0359516
|
||||
5.3 0.0344785
|
||||
5.325 0.0357682
|
||||
5.35 0.0335589
|
||||
5.375 0.0347111
|
||||
5.4 0.0342224
|
||||
5.425 0.0332132
|
||||
5.45 0.0320652
|
||||
5.475 0.0325691
|
||||
5.5 0.0321428
|
||||
5.525 0.0326143
|
||||
5.55 0.0312461
|
||||
5.575 0.0316446
|
||||
5.6 0.0326207
|
||||
5.625 0.0309292
|
||||
5.65 0.031781
|
||||
5.675 0.03111
|
||||
5.7 0.031085
|
||||
5.725 0.0298376
|
||||
5.75 0.0300253
|
||||
5.775 0.0291072
|
||||
5.8 0.029434
|
||||
5.825 0.0293647
|
||||
5.85 0.0286518
|
||||
5.875 0.0294225
|
||||
5.9 0.0288101
|
||||
5.925 0.0277371
|
||||
5.95 0.0281405
|
||||
5.975 0.0272806
|
||||
6 0.0285658
|
||||
6.025 0.0270799
|
||||
6.05 0.0267617
|
||||
6.075 0.0270039
|
||||
6.1 0.0259037
|
||||
6.125 0.0267149
|
||||
6.15 0.0268916
|
||||
6.175 0.0260552
|
||||
6.2 0.0264474
|
||||
6.225 0.0261997
|
||||
6.25 0.0250775
|
||||
6.275 0.0251349
|
||||
6.3 0.0248374
|
||||
6.325 0.0248917
|
||||
6.35 0.0253588
|
||||
6.375 0.0239189
|
||||
6.4 0.0235247
|
||||
6.425 0.0243316
|
||||
6.45 0.0237805
|
||||
6.475 0.024539
|
||||
6.5 0.0229951
|
||||
6.525 0.0234679
|
||||
6.55 0.0222213
|
||||
6.575 0.0226512
|
||||
6.6 0.0231117
|
||||
6.625 0.0226865
|
||||
6.65 0.0226309
|
||||
6.675 0.0221741
|
||||
6.7 0.021886
|
||||
6.725 0.0225204
|
||||
6.75 0.0215891
|
||||
6.775 0.0215803
|
||||
6.8 0.0211783
|
||||
6.825 0.0211231
|
||||
6.85 0.0202702
|
||||
6.875 0.021167
|
||||
6.9 0.0200604
|
||||
6.925 0.0194932
|
||||
6.95 0.0202454
|
||||
6.975 0.0203641
|
||||
7 0.0195786
|
||||
7.025 0.0199124
|
||||
7.05 0.0204308
|
||||
7.075 0.0201506
|
||||
7.1 0.0187051
|
||||
7.125 0.0194116
|
||||
7.15 0.0188402
|
||||
7.175 0.0186343
|
||||
7.2 0.0181915
|
||||
7.225 0.0182014
|
||||
7.25 0.0181212
|
||||
7.275 0.0187745
|
||||
7.3 0.0185264
|
||||
7.325 0.0179612
|
||||
7.35 0.0182145
|
||||
7.375 0.0173885
|
||||
7.4 0.0175296
|
||||
7.425 0.0173015
|
||||
7.45 0.0178655
|
||||
7.475 0.0171251
|
||||
7.5 0.0172817
|
||||
7.525 0.0169988
|
||||
7.55 0.0174812
|
||||
7.575 0.0163579
|
||||
7.6 0.0169149
|
||||
7.625 0.0158714
|
||||
7.65 0.0167692
|
||||
7.675 0.0159291
|
||||
7.7 0.0164796
|
||||
7.725 0.0162668
|
||||
7.75 0.0160943
|
||||
7.775 0.0154321
|
||||
7.8 0.0154565
|
||||
7.825 0.0152527
|
||||
7.85 0.015076
|
||||
7.875 0.015373
|
||||
7.9 0.0159891
|
||||
7.925 0.0151343
|
||||
7.95 0.0152519
|
||||
7.975 0.0149324
|
||||
8 0.0143593
|
||||
8.025 0.0146017
|
||||
8.05 0.0153433
|
||||
8.075 0.0148959
|
||||
8.1 0.0153935
|
||||
8.125 0.014794
|
||||
8.15 0.0148756
|
||||
8.175 0.0142601
|
||||
8.2 0.0135775
|
||||
8.225 0.0139981
|
||||
8.25 0.0135948
|
||||
8.275 0.0134384
|
||||
8.3 0.0135721
|
||||
8.325 0.0135676
|
||||
8.35 0.013381
|
||||
8.375 0.0138911
|
||||
8.4 0.0137102
|
||||
8.425 0.0134236
|
||||
8.45 0.0132839
|
||||
8.475 0.0137468
|
||||
8.5 0.0126954
|
||||
8.525 0.0131381
|
||||
8.55 0.012917
|
||||
8.575 0.0125523
|
||||
8.6 0.0133552
|
||||
8.625 0.0129323
|
||||
8.65 0.0124276
|
||||
8.675 0.0127568
|
||||
8.7 0.0123417
|
||||
8.725 0.0123311
|
||||
8.75 0.012783
|
||||
8.775 0.0125416
|
||||
8.8 0.0122996
|
||||
8.825 0.0119504
|
||||
8.85 0.0114672
|
||||
8.875 0.0118241
|
||||
8.9 0.0118658
|
||||
8.925 0.0113748
|
||||
8.95 0.0124416
|
||||
8.975 0.0120009
|
||||
9 0.011586
|
||||
9.025 0.0116351
|
||||
9.05 0.012039
|
||||
9.075 0.0114209
|
||||
9.1 0.0112775
|
||||
9.125 0.0114966
|
||||
9.15 0.0108383
|
||||
9.175 0.0115186
|
||||
9.2 0.0108263
|
||||
9.225 0.0106703
|
||||
9.25 0.010646
|
||||
9.275 0.0113658
|
||||
9.3 0.0109566
|
||||
9.325 0.0106675
|
||||
9.35 0.0103524
|
||||
9.375 0.0107476
|
||||
9.4 0.00997691
|
||||
9.425 0.010812
|
||||
9.45 0.0102024
|
||||
9.475 0.010362
|
||||
9.5 0.0101172
|
||||
9.525 0.0105576
|
||||
9.55 0.010192
|
||||
9.575 0.00999399
|
||||
9.6 0.0101592
|
||||
9.625 0.0103616
|
||||
9.65 0.00995615
|
||||
9.675 0.00976115
|
||||
9.7 0.00936209
|
||||
9.725 0.00957029
|
||||
9.75 0.0094812
|
||||
9.775 0.00989171
|
||||
9.8 0.00951605
|
||||
9.825 0.00946831
|
||||
9.85 0.00973281
|
||||
9.875 0.00911279
|
||||
9.9 0.00926576
|
||||
9.925 0.00939933
|
||||
9.95 0.00938689
|
||||
9.975 0.00915537
|
||||
10 0.00882561
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
0.25 13.835
|
||||
0.5 3.8342
|
||||
0.75 1.7436
|
||||
1 0.9899
|
||||
1.5 0.4432
|
||||
2 0.2503
|
||||
3 0.1115
|
||||
4 0.0626
|
||||
5 0.0399
|
||||
6 0.0275
|
||||
7 0.02001
|
||||
8 0.015123
|
||||
10 0.009348
|
||||
|
||||
@@ -37,8 +37,8 @@ The class BrachyAnalysisManager creates and manages histograms and ntuples
|
||||
#ifdef ANALYSIS_USE
|
||||
#include "TROOT.h"
|
||||
#include "TFile.h"
|
||||
#include "TNtuple.h"
|
||||
#include "TH1F.h"
|
||||
#include "TH2F.h"
|
||||
#endif
|
||||
|
||||
|
||||
@@ -56,11 +56,12 @@ public:
|
||||
// Create the ntuple and histograms
|
||||
|
||||
#ifdef ANALYSIS_USE
|
||||
void FillNtupleWithEnergyDeposition(G4double,G4double,G4double,G4double);
|
||||
// Method to fill the ntuple with the energy deposition, integrated over a run, in each voxel
|
||||
// of the scoring mesh
|
||||
|
||||
void FillPrimaryParticleHistogram(G4double);
|
||||
void FillH2WithEnergyDeposition(G4double xx,G4double yy, G4double energyDep);
|
||||
// Method to fill the 2D histogram with the energy deposition, integrated over a run, in each voxel
|
||||
// of the scoring mesh. The scoring mesh is in the plane containing the source.
|
||||
|
||||
void FillPrimaryParticleHistogram(G4double);
|
||||
// Energy spectrum of primary particles
|
||||
#endif
|
||||
|
||||
@@ -74,7 +75,7 @@ private:
|
||||
#ifdef ANALYSIS_USE
|
||||
TFile* theTFile;
|
||||
TH1F* histo;
|
||||
TNtuple* ntuple;
|
||||
TH2F* histo2;
|
||||
#endif
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Code developed by: S. Guatelli, D. Cutajar, J. Poder,
|
||||
//Centre For Medical Radiation Physics, University of Wollongong
|
||||
//
|
||||
//
|
||||
// ******************************************
|
||||
// * *
|
||||
// * BrachyDetectorConstructionFlexi.hh *
|
||||
// * *
|
||||
// ******************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef BrachyDetectorConstructionFlexi_H
|
||||
#define BrachyDetectorConstructionFlexi_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
|
||||
class G4LogicalVolume;
|
||||
class G4Tubs;
|
||||
class G4Cons;
|
||||
class G4VPhysicalVolume;
|
||||
class BrachyMaterial;
|
||||
class G4VisAttributes;
|
||||
|
||||
class BrachyDetectorConstructionFlexi
|
||||
{
|
||||
public:
|
||||
BrachyDetectorConstructionFlexi();
|
||||
~BrachyDetectorConstructionFlexi();
|
||||
|
||||
void ConstructFlexi(G4VPhysicalVolume*);
|
||||
// Model the Flexi iridium source
|
||||
|
||||
void CleanFlexi();
|
||||
// Destroy the Iridium source in the experimental set-up
|
||||
|
||||
private:
|
||||
G4Tubs* steel_shell;
|
||||
G4LogicalVolume* logical_steel_shell;
|
||||
G4VPhysicalVolume* physical_steel_shell;
|
||||
|
||||
G4Tubs* air_gap;
|
||||
G4LogicalVolume* logical_air_gap;
|
||||
G4VPhysicalVolume* physical_air_gap;
|
||||
|
||||
G4Tubs* End1_steel_shell;
|
||||
G4LogicalVolume* logical_End1_steel_shell;
|
||||
G4VPhysicalVolume* physical_End1_steel_shell;
|
||||
|
||||
G4Cons* End2_steel_shell;
|
||||
G4LogicalVolume* logical_End2_steel_shell;
|
||||
G4VPhysicalVolume* physical_End2_steel_shell;
|
||||
|
||||
G4Tubs* cable;
|
||||
G4LogicalVolume* logical_cable;
|
||||
G4VPhysicalVolume* physical_cable;
|
||||
|
||||
G4Tubs* iridium_core;
|
||||
G4LogicalVolume* logical_iridium_core;
|
||||
G4VPhysicalVolume* physical_iridium_core;
|
||||
|
||||
G4VisAttributes* steelAttributes;
|
||||
G4VisAttributes* endAttributes;
|
||||
G4VisAttributes* simpleIridiumVisAtt;
|
||||
|
||||
BrachyMaterial* pMat;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: BrachyDetectorConstructionIr.hh 69765 2013-05-14 10:11:22Z gcosmo $
|
||||
//
|
||||
// ****************************************
|
||||
// * *
|
||||
// * BrachyDetectorConstructionIr.hh *
|
||||
// * *
|
||||
// ****************************************
|
||||
//
|
||||
// Management of the Iridium source
|
||||
//
|
||||
|
||||
#ifndef BrachyDetectorConstructionIr_H
|
||||
#define BrachyDetectorConstructionIr_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
|
||||
class G4LogicalVolume;
|
||||
class G4Tubs;
|
||||
class G4Box;
|
||||
class G4Sphere;
|
||||
class G4VPhysicalVolume;
|
||||
class BrachyMaterial;
|
||||
class G4VisAttributes;
|
||||
|
||||
class BrachyDetectorConstructionTG186
|
||||
{
|
||||
public:
|
||||
BrachyDetectorConstructionTG186();
|
||||
~BrachyDetectorConstructionTG186();
|
||||
|
||||
void ConstructTG186(G4VPhysicalVolume*);
|
||||
// Model the TG186 reference source
|
||||
|
||||
void CleanTG186();
|
||||
// Destroy the TG186 reference source in the experimental set-up
|
||||
|
||||
private:
|
||||
G4Tubs* TG186capsule ;
|
||||
G4LogicalVolume* TG186capsuleLog;
|
||||
G4VPhysicalVolume* TG186capsulePhys;
|
||||
G4Sphere* TG186capsuleTip;
|
||||
G4LogicalVolume* TG186capsuleTipLog;
|
||||
G4VPhysicalVolume* TG186capsuleTipPhys;
|
||||
G4Tubs* TG186iridiumCore;
|
||||
G4LogicalVolume* TG186iridiumCoreLog;
|
||||
G4VPhysicalVolume* TG186iridiumCorePhys;
|
||||
G4Tubs* TG186cable;
|
||||
G4LogicalVolume* TG186cableLog;
|
||||
G4VPhysicalVolume* TG186cablePhys;
|
||||
|
||||
BrachyMaterial* pMat;
|
||||
|
||||
G4VisAttributes* TG186simpleCapsuleVisAtt;
|
||||
G4VisAttributes* TG186simpleCapsuleTipVisAtt;
|
||||
G4VisAttributes* TG186simpleIridiumVisAtt;
|
||||
G4VisAttributes* TG186simpleCableVisAtt;
|
||||
};
|
||||
#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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
// **********************************
|
||||
// * *
|
||||
// * BrachyFactoryFlexi.hh *
|
||||
// * *
|
||||
// **********************************
|
||||
//
|
||||
//Code developed by: S. Guatelli, D. Cutajar, J. Poder,
|
||||
//Centre For Medical Radiation Physics, University of Wollongong
|
||||
//
|
||||
#ifndef BrachyFactoryFlexi_h
|
||||
#define BrachyFactoryFlexi_h 1
|
||||
|
||||
#include "BrachyFactory.hh"
|
||||
#include "G4RunManager.hh"
|
||||
|
||||
class G4ParticleGun;
|
||||
class G4Run;
|
||||
class G4Event;
|
||||
class BrachyFactory;
|
||||
class BrachyDetectorConstructionFlexi;
|
||||
|
||||
// This class manages the creation of the Nucletron Flexi Source
|
||||
|
||||
class BrachyFactoryFlexi : public BrachyFactory
|
||||
{
|
||||
public:
|
||||
BrachyFactoryFlexi();
|
||||
~BrachyFactoryFlexi();
|
||||
void CreateSource(G4VPhysicalVolume*);
|
||||
void CleanSource();
|
||||
|
||||
private:
|
||||
BrachyDetectorConstructionFlexi* flexiSource;
|
||||
|
||||
};
|
||||
#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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: BrachyFactoryIr.hh 69765 2013-05-14 10:11:22Z gcosmo $
|
||||
//
|
||||
// **********************************
|
||||
// * *
|
||||
// * BrachyFactoryIr.hh *
|
||||
// * *
|
||||
// **********************************
|
||||
//
|
||||
// Author: D. Cutajar
|
||||
//
|
||||
#ifndef BrachyFactoryTG186_h
|
||||
#define BrachyFactoryTG186_h 1
|
||||
|
||||
#include "BrachyFactory.hh"
|
||||
#include "G4RunManager.hh"
|
||||
|
||||
class G4ParticleGun;
|
||||
class G4Run;
|
||||
class G4Event;
|
||||
class BrachyFactory;
|
||||
class BrachyDetectorConstructionTG186;
|
||||
|
||||
// This class manages the creation of iridum source used in endocavitary
|
||||
// brachytherapy ...
|
||||
class BrachyFactoryTG186 : public BrachyFactory
|
||||
{
|
||||
public:
|
||||
BrachyFactoryTG186();
|
||||
~BrachyFactoryTG186();
|
||||
void CreateSource(G4VPhysicalVolume*);
|
||||
void CleanSource();
|
||||
|
||||
private:
|
||||
BrachyDetectorConstructionTG186* TG186iridiumSource;
|
||||
};
|
||||
#endif
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: BrachyMaterial.hh 69765 2013-05-14 10:11:22Z gcosmo $
|
||||
// $Id: BrachyMaterial.hh 100821 2016-11-02 15:21:34Z gcosmo $
|
||||
//
|
||||
// **********************************
|
||||
// * *
|
||||
@@ -62,6 +62,7 @@ private:
|
||||
G4Material* matH2O;
|
||||
G4Material* soft;
|
||||
G4Material* matsteel;
|
||||
G4Material* mat304steel;
|
||||
G4Material* gold;
|
||||
G4Material* matI;
|
||||
G4Material* ceramic;
|
||||
|
||||
@@ -1,11 +1,129 @@
|
||||
# Definition of the radiation field
|
||||
# by means of the General Particle Source
|
||||
# http://reat.space.qinetiq.com/gps/
|
||||
/gps/ene/type Arb
|
||||
/gps/hist/type arb
|
||||
/gps/hist/point 0.0614 1e-8
|
||||
/gps/hist/point 0.0615 0.412
|
||||
/gps/hist/point 0.0616 1e-8
|
||||
/gps/hist/point 0.0629 1e-8
|
||||
/gps/hist/point 0.063 0.7039
|
||||
/gps/hist/point 0.0631 1e-8
|
||||
/gps/hist/point 0.0650 1e-8
|
||||
/gps/hist/point 0.0651 1.1309
|
||||
/gps/hist/point 0.0652 1e-8
|
||||
/gps/hist/point 0.0667 1e-8
|
||||
/gps/hist/point 0.0668 1.9178
|
||||
/gps/hist/point 0.0669 1e-8
|
||||
/gps/hist/point 0.0710 1e-8
|
||||
/gps/hist/point 0.0711 0.0827
|
||||
/gps/hist/point 0.0712 1e-8
|
||||
/gps/hist/point 0.0713 1e-8
|
||||
/gps/hist/point 0.0714 0.1600
|
||||
/gps/hist/point 0.0715 1e-8
|
||||
/gps/hist/point 0.0733 1e-8
|
||||
/gps/hist/point 0.0734 0.0560
|
||||
/gps/hist/point 0.0735 1e-8
|
||||
/gps/hist/point 0.0753 1e-8
|
||||
/gps/hist/point 0.0754 0.2292
|
||||
/gps/hist/point 0.0755 1e-8
|
||||
/gps/hist/point 0.0756 1e-8
|
||||
/gps/hist/point 0.0757 0.4408
|
||||
/gps/hist/point 0.0758 1e-8
|
||||
/gps/hist/point 0.0777 1e-8
|
||||
/gps/hist/point 0.0778 0.1570
|
||||
/gps/hist/point 0.0779 1e-8
|
||||
/gps/hist/point 0.1103 1e-8
|
||||
/gps/hist/point 0.1104 0.0042
|
||||
/gps/hist/point 0.1105 1e-8
|
||||
/gps/hist/point 0.1362 1e-8
|
||||
/gps/hist/point 0.1363 0.0860
|
||||
/gps/hist/point 0.1364 1e-8
|
||||
/gps/hist/point 0.1769 1e-8
|
||||
/gps/hist/point 0.1770 0.0018
|
||||
/gps/hist/point 0.1771 1e-8
|
||||
/gps/hist/point 0.2012 1e-8
|
||||
/gps/hist/point 0.2013 0.1624
|
||||
/gps/hist/point 0.2014 1e-8
|
||||
/gps/hist/point 0.2057 1e-8
|
||||
/gps/hist/point 0.2058 1.1468
|
||||
/gps/hist/point 0.2059 1e-8
|
||||
/gps/hist/point 0.2802 1e-8
|
||||
/gps/hist/point 0.2803 0.0039
|
||||
/gps/hist/point 0.2804 1e-8
|
||||
/gps/hist/point 0.2832 1e-8
|
||||
/gps/hist/point 0.2833 0.0913
|
||||
/gps/hist/point 0.2834 1e-8
|
||||
/gps/hist/point 0.2959 1e-8
|
||||
/gps/hist/point 0.2960 12.3498
|
||||
/gps/hist/point 0.2961 1e-8
|
||||
/gps/hist/point 0.3084 1e-8
|
||||
/gps/hist/point 0.3085 12.7626
|
||||
/gps/hist/point 0.3086 1e-8
|
||||
/gps/hist/point 0.3164 1e-8
|
||||
/gps/hist/point 0.3165 35.5660
|
||||
/gps/hist/point 0.3166 1e-8
|
||||
/gps/hist/point 0.3291 1e-8
|
||||
/gps/hist/point 0.3292 0.0060
|
||||
/gps/hist/point 0.3293 1e-8
|
||||
/gps/hist/point 0.3744 1e-8
|
||||
/gps/hist/point 0.3745 0.2493
|
||||
/gps/hist/point 0.3746 1e-8
|
||||
/gps/hist/point 0.4164 1e-8
|
||||
/gps/hist/point 0.4165 0.2877
|
||||
/gps/hist/point 0.4166 1e-8
|
||||
/gps/hist/point 0.4204 1e-8
|
||||
/gps/hist/point 0.4205 0.0237
|
||||
/gps/hist/point 0.4206 1e-8
|
||||
/gps/hist/point 0.4680 1e-8
|
||||
/gps/hist/point 0.4681 20.5587
|
||||
/gps/hist/point 0.4682 1e-8
|
||||
/gps/hist/point 0.4845 1e-8
|
||||
/gps/hist/point 0.4846 1.0942
|
||||
/gps/hist/point 0.4847 1e-8
|
||||
/gps/hist/point 0.4852 1e-8
|
||||
/gps/hist/point 0.4853 0.0010
|
||||
/gps/hist/point 0.4854 1e-8
|
||||
/gps/hist/point 0.4890 1e-8
|
||||
/gps/hist/point 0.4891 0.1504
|
||||
/gps/hist/point 0.4892 1e-8
|
||||
/gps/hist/point 0.5885 1e-8
|
||||
/gps/hist/point 0.5886 1.9423
|
||||
/gps/hist/point 0.5887 1e-8
|
||||
/gps/hist/point 0.5934 1e-8
|
||||
/gps/hist/point 0.5935 0.0181
|
||||
/gps/hist/point 0.5936 1e-8
|
||||
/gps/hist/point 0.5993 1e-8
|
||||
/gps/hist/point 0.5994 0.0017
|
||||
/gps/hist/point 0.5995 1e-8
|
||||
/gps/hist/point 0.6043 1e-8
|
||||
/gps/hist/point 0.6044 3.5361
|
||||
/gps/hist/point 0.6045 1e-8
|
||||
/gps/hist/point 0.6124 1e-8
|
||||
/gps/hist/point 0.6125 2.2962
|
||||
/gps/hist/point 0.6126 1e-8
|
||||
/gps/hist/point 0.7038 1e-8
|
||||
/gps/hist/point 0.7039 0.0018
|
||||
/gps/hist/point 0.7040 1e-8
|
||||
/gps/hist/point 0.7657 1e-8
|
||||
/gps/hist/point 0.7658 0.0006
|
||||
/gps/hist/point 0.7659 1e-8
|
||||
/gps/hist/point 0.8844 1e-8
|
||||
/gps/hist/point 0.8845 0.1251
|
||||
/gps/hist/point 0.8846 1e-8
|
||||
/gps/hist/point 1.0614 1e-8
|
||||
/gps/hist/point 1.0615 0.0228
|
||||
/gps/hist/point 1.0616 1e-8
|
||||
/gps/hist/point 1.0898 1e-8
|
||||
/gps/hist/point 1.0899 0.0005
|
||||
/gps/hist/point 1.0890 1e-8
|
||||
/gps/hist/point 1.3781 1e-8
|
||||
/gps/hist/point 1.3782 0.0005
|
||||
/gps/hist/point 1.3783 1e-8
|
||||
/gps/hist/inter Lin
|
||||
/gps/particle gamma
|
||||
/gps/energy 356.0 keV
|
||||
/gps/pos/type Volume
|
||||
/gps/pos/shape Cylinder
|
||||
/gps/pos/radius 0.30 mm
|
||||
/gps/pos/halfz 1.75 mm
|
||||
/gps/pos/centre 0. 0. -1.975 mm
|
||||
/gps/pos/centre 0. 0. 0. mm
|
||||
/gps/ang/type iso
|
||||
|
||||
|
||||
|
||||
@@ -1,41 +1,6 @@
|
||||
{
|
||||
gROOT -> Reset();
|
||||
TFile f("brachytherapy.root");
|
||||
|
||||
ntuple -> Print();
|
||||
|
||||
Int_t index;
|
||||
Double_t xx;
|
||||
Double_t yy;
|
||||
Double_t zz;
|
||||
Double_t edep;
|
||||
ntuple->GetBranch("xx")->SetAddress(&xx);
|
||||
ntuple->GetBranch("yy")->SetAddress(&yy);
|
||||
ntuple->GetBranch("zz")->SetAddress(&zz);
|
||||
ntuple->GetBranch("edep")->SetAddress(&edep);
|
||||
|
||||
// Print the content of the ntuple
|
||||
/*Int_t nevent = Int_t(ntuple->GetEntries());
|
||||
|
||||
for ( Int_t i=0; i<nevent; i++ ) {
|
||||
ntuple->GetEvent(i);
|
||||
cout << "xx, yy, zz, edep: "
|
||||
<< xx << ", " << yy << ", " << zz << ", " << edep << endl;
|
||||
}
|
||||
*/
|
||||
|
||||
// The phantom is 30 cm wide along x, y, z
|
||||
// the voxel size is 1 mm. The number of voxels is 300 along x, y, z
|
||||
|
||||
// Plot the energy deposition in the phantom in 3D
|
||||
TCanvas* c1 = new TCanvas("c1", " ");
|
||||
|
||||
TH3F* edepDDistribution3D = new TH3F("h30", "3Dedepxyz",
|
||||
300, -150, 150, // binning, xmin, xmax, along x direction
|
||||
300, -150, 150, // binning, xmin, xmax, along y direction
|
||||
300, -150, 150);// binning, xmin, xmax, along z direction
|
||||
|
||||
gStyle->SetPalette(1);
|
||||
|
||||
ntuple.Draw("xx:yy:zz:edep>>h30", "", "colz");
|
||||
h20.Draw("");
|
||||
}
|
||||
|
||||
@@ -31,9 +31,9 @@ Author: Susanna Guatelli
|
||||
// example analysis/AnaEx01
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "BrachyAnalysisManager.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
BrachyAnalysisManager* BrachyAnalysisManager::instance = 0;
|
||||
|
||||
@@ -41,8 +41,8 @@ BrachyAnalysisManager::BrachyAnalysisManager()
|
||||
{
|
||||
#ifdef ANALYSIS_USE
|
||||
theTFile = 0;
|
||||
histo2 =0;
|
||||
histo = 0;
|
||||
ntuple = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -50,16 +50,15 @@ BrachyAnalysisManager::~BrachyAnalysisManager()
|
||||
{
|
||||
#ifdef G4ANALYSIS_USE
|
||||
delete theTFile; theTFile = 0;
|
||||
delete histo2; histo2 = 0;
|
||||
delete histo; histo = 0;
|
||||
delete ntuple; ntuple = 0;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
BrachyAnalysisManager* BrachyAnalysisManager::GetInstance()
|
||||
{
|
||||
if (instance == 0) instance = new BrachyAnalysisManager;
|
||||
return instance;
|
||||
if (instance == 0) instance = new BrachyAnalysisManager;
|
||||
return instance;
|
||||
}
|
||||
|
||||
void BrachyAnalysisManager::book()
|
||||
@@ -69,17 +68,17 @@ void BrachyAnalysisManager::book()
|
||||
theTFile = new TFile("brachytherapy.root", "RECREATE");
|
||||
|
||||
histo = new TH1F("h10","energy spectrum", 800, 0., 800);
|
||||
ntuple = new TNtuple("ntuple","edep3D","xx:yy:zz:edep");
|
||||
histo2 = new TH2F("h20","edep2Dxy", 801, -100.125, 100.125, // binning, xmin, xmax, along x direction in mm
|
||||
801, -100.125, 100.125);// binning, ymin, ymax, along y direction in mm
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef ANALYSIS_USE
|
||||
void BrachyAnalysisManager::FillNtupleWithEnergyDeposition(G4double xx,
|
||||
void BrachyAnalysisManager::FillH2WithEnergyDeposition(G4double xx,
|
||||
G4double yy,
|
||||
G4double zz,
|
||||
G4double energyDep)
|
||||
{
|
||||
ntuple -> Fill(xx, yy, zz, energyDep);
|
||||
histo2 -> Fill(xx, yy,energyDep);
|
||||
}
|
||||
|
||||
void BrachyAnalysisManager::FillPrimaryParticleHistogram(G4double primaryParticleEnergy)
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
// GEANT 4 - Brachytherapy example
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// Code developed by:
|
||||
// S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano, S.Guatelli
|
||||
// Code developed by:S. Guatelli, D. Cutajar
|
||||
// Past developers: S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano
|
||||
//
|
||||
//
|
||||
// ****************************************
|
||||
@@ -54,8 +54,9 @@
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "BrachyMaterial.hh"
|
||||
#include "BrachyFactoryLeipzig.hh"
|
||||
#include "BrachyFactoryIr.hh"
|
||||
#include "BrachyFactoryTG186.hh"
|
||||
#include "BrachyFactoryI.hh"
|
||||
#include "BrachyFactoryFlexi.hh"
|
||||
#include "BrachyDetectorMessenger.hh"
|
||||
#include "BrachyDetectorConstruction.hh"
|
||||
|
||||
@@ -79,8 +80,8 @@ BrachyDetectorConstruction::BrachyDetectorConstruction():
|
||||
// It is possible to modify geometrical parameters through UI
|
||||
detectorMessenger = new BrachyDetectorMessenger(this);
|
||||
|
||||
// Define the Iridium source as default source modelled in the geometry
|
||||
factory = new BrachyFactoryIr();
|
||||
// Define the Flexi source as default source modelled in the geometry
|
||||
factory = new BrachyFactoryFlexi();
|
||||
|
||||
// BrachyMaterial defined the all the materials necessary
|
||||
// for the experimental set-up
|
||||
@@ -123,10 +124,13 @@ void BrachyDetectorConstruction::SwitchBrachytherapicSeed()
|
||||
factory = new BrachyFactoryLeipzig();
|
||||
break;
|
||||
case 3:
|
||||
factory = new BrachyFactoryIr();
|
||||
factory = new BrachyFactoryTG186();
|
||||
break;
|
||||
case 4:
|
||||
factory = new BrachyFactoryFlexi();
|
||||
break;
|
||||
default:
|
||||
factory = new BrachyFactoryIr();
|
||||
factory = new BrachyFactoryFlexi();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -140,14 +144,17 @@ void BrachyDetectorConstruction::SwitchBrachytherapicSeed()
|
||||
|
||||
void BrachyDetectorConstruction::SelectBrachytherapicSeed(G4String val)
|
||||
{
|
||||
if (val == "Iodium") detectorChoice = 1;
|
||||
if (val == "Iodine") detectorChoice = 1;
|
||||
else{
|
||||
if(val=="Leipzig") detectorChoice = 2;
|
||||
else{
|
||||
if(val=="Iridium") detectorChoice = 3;
|
||||
else G4cout << val << "is not available!!!!" <<G4endl;
|
||||
if(val=="TG186") detectorChoice = 3;
|
||||
else{
|
||||
if(val=="Flexi") detectorChoice = 4;
|
||||
else G4cout << val << "is not available!!!!" <<G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
G4cout << "Now the source is " << val << G4endl;
|
||||
}
|
||||
|
||||
@@ -178,7 +185,7 @@ void BrachyDetectorConstruction::ConstructPhantom()
|
||||
PhantomLog, // Associated logical volume
|
||||
WorldPhys, // Mother volume
|
||||
false,0);
|
||||
WorldLog -> SetVisAttributes (G4VisAttributes::Invisible);
|
||||
WorldLog -> SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
|
||||
// Visualization attributes of the phantom
|
||||
G4VisAttributes* simpleBoxVisAtt = new G4VisAttributes(lblue);
|
||||
|
||||
@@ -0,0 +1,229 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 - Brachytherapy example
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// Code developed by:
|
||||
// S. Guatelli, D. Cutajar, J. Poder
|
||||
// Centre For Medical Radiation Physics, University of Wollongong
|
||||
//
|
||||
// ****************************************
|
||||
// * *
|
||||
// * BrachyDetectorConstructionFlexi.cc*
|
||||
// * *
|
||||
// ****************************************
|
||||
//
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "BrachyDetectorConstructionFlexi.hh"
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4Tubs.hh"
|
||||
#include "G4Cons.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
#include "G4Transform3D.hh"
|
||||
#include "G4RotationMatrix.hh"
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "BrachyMaterial.hh"
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "G4Colour.hh"
|
||||
|
||||
BrachyDetectorConstructionFlexi::BrachyDetectorConstructionFlexi()
|
||||
: steel_shell(0),logical_steel_shell(0),air_gap(0), logical_air_gap(0), physical_air_gap(0),
|
||||
End1_steel_shell(0),logical_End1_steel_shell(0), physical_End1_steel_shell(0),
|
||||
End2_steel_shell(0),logical_End2_steel_shell(0), physical_End2_steel_shell(0),
|
||||
cable(0),logical_cable(0),physical_cable(0),
|
||||
iridium_core(0),logical_iridium_core(0),physical_iridium_core(0),
|
||||
steelAttributes(0), endAttributes(0), simpleIridiumVisAtt(0)
|
||||
{
|
||||
pMat = new BrachyMaterial();
|
||||
}
|
||||
|
||||
BrachyDetectorConstructionFlexi::~BrachyDetectorConstructionFlexi()
|
||||
{
|
||||
delete pMat;
|
||||
}
|
||||
|
||||
void BrachyDetectorConstructionFlexi::ConstructFlexi(G4VPhysicalVolume* mother)
|
||||
{
|
||||
G4Material* steelMat = pMat -> GetMat("Stainless steel 304");
|
||||
G4Material* iridiumMat = pMat -> GetMat("Iridium");
|
||||
G4Material* airMat = pMat -> GetMat("Air");
|
||||
|
||||
//Define dimensions of the outer Steel shell around the solid source - not including the ends
|
||||
|
||||
G4double shellr_min = 0.00 * mm;
|
||||
G4double shellr_max = 0.85 * mm;
|
||||
G4double shell_length = 3.6 * mm;
|
||||
steel_shell = new G4Tubs("steel_shell",shellr_min, shellr_max/2, shell_length/2.,0.*deg,360.*deg);
|
||||
logical_steel_shell = new G4LogicalVolume(steel_shell, steelMat, "steel_shell_log", 0, 0, 0);
|
||||
physical_steel_shell = new G4PVPlacement(0,G4ThreeVector(0,0,0),"phys_steel_shell", logical_steel_shell, mother, false, 0, true);
|
||||
|
||||
//Define dimensions of the air gap between Steel shell and Iridium core
|
||||
G4double airr_min = 0.00 * mm;
|
||||
G4double airr_max = 0.67 * mm;
|
||||
G4double air_length = 3.6 * mm;
|
||||
air_gap = new G4Tubs("air_gap", airr_min, airr_max/2, air_length/2, 0.*deg, 360.*deg);
|
||||
logical_air_gap = new G4LogicalVolume(air_gap, airMat, "air_gap_log", 0, 0, 0);
|
||||
physical_air_gap = new G4PVPlacement(0, G4ThreeVector(0,0,0), "phys_air_gap",logical_air_gap, physical_steel_shell, false, 0, true);
|
||||
|
||||
//Define the non-cable weld end of the Steel shell
|
||||
G4double End1r_min = 0.0 * mm;
|
||||
G4double End1r_max = 0.85 * mm;
|
||||
G4double End1length = 0.65 * mm;
|
||||
End1_steel_shell = new G4Tubs("End_1_steel_shell",End1r_min, End1r_max/2, End1length/2.,0.*deg,360.*deg);
|
||||
logical_End1_steel_shell = new G4LogicalVolume(End1_steel_shell, steelMat, "End1_steel_shell_log", 0, 0, 0);
|
||||
G4double end1offset_x = 0.0 * mm;
|
||||
G4double end1offset_y = 0.0 * mm;
|
||||
G4double end1offset_z = 2.125 * mm;
|
||||
physical_End1_steel_shell = new G4PVPlacement(0,G4ThreeVector(end1offset_x,end1offset_y,end1offset_z),"phys_End1_steel_shell", logical_End1_steel_shell,mother, false, 0, true);
|
||||
|
||||
//Define the cable weld end of the Steel shell
|
||||
G4double End2r_min1 = 0.0 * mm;
|
||||
G4double End2r_max1 = 0.85 * mm;
|
||||
G4double End2r_min2 = 0.0 * mm;
|
||||
G4double End2r_max2 = 0.5 * mm;
|
||||
G4double End2length = 0.4 * mm;
|
||||
End2_steel_shell = new G4Cons("End_2_steel_shell",End2r_min2, End2r_max2/2, End2r_min1, End2r_max1/2, End2length/2.0, 0.0, 360.0*deg);
|
||||
logical_End2_steel_shell = new G4LogicalVolume(End2_steel_shell, steelMat, "End2_steel_shell_log", 0, 0, 0);
|
||||
G4double end2offset_x = 0.0 * mm;
|
||||
G4double end2offset_y = 0.0 * mm;
|
||||
G4double end2offset_z = -2.0 * mm;
|
||||
physical_End2_steel_shell = new G4PVPlacement(0,G4ThreeVector(end2offset_x,end2offset_y,end2offset_z), "phys_End2_steel_shell", logical_End2_steel_shell,mother, false, 0, true);
|
||||
|
||||
//Define the cable
|
||||
G4double cable_min = 0.0 * mm;
|
||||
G4double cable_max = 0.5 * mm;
|
||||
G4double cablelength = 5.0 * mm;
|
||||
cable = new G4Tubs("cable",cable_min, cable_max/2, cablelength/2.,0.*deg,360.*deg);
|
||||
logical_cable = new G4LogicalVolume(cable, steelMat, "cable_log", 0, 0, 0);
|
||||
G4double cableoffset_x = 0.0 * mm;
|
||||
G4double cableoffset_y = 0.0 * mm;
|
||||
G4double cableoffset_z = -4.7 * mm;
|
||||
physical_cable = new G4PVPlacement(0,G4ThreeVector(cableoffset_x,cableoffset_y,cableoffset_z),"phys_cable", logical_cable, mother, false, 0, true);
|
||||
|
||||
// Define the Iridium core
|
||||
G4double corer_min = 0.0 * mm;
|
||||
G4double corer_max = 0.6 * mm;
|
||||
G4double core_length = 3.5 * mm;
|
||||
iridium_core = new G4Tubs("iridium_core",corer_min, corer_max/2,core_length/2.,0.*deg,360.*deg);
|
||||
logical_iridium_core = new G4LogicalVolume(iridium_core, iridiumMat, "iridium_core_log", 0, 0, 0);
|
||||
physical_iridium_core = new G4PVPlacement(0,G4ThreeVector(0,0,0), "phys_iridium_core", logical_iridium_core, physical_air_gap, false, 0, true);
|
||||
|
||||
// Visualisations
|
||||
|
||||
//Shell/cable attributes
|
||||
steelAttributes = new G4VisAttributes(G4Colour(1.0, 0.0, 0.0)); // red
|
||||
steelAttributes -> SetVisibility(true);
|
||||
steelAttributes -> SetForceAuxEdgeVisible(true);
|
||||
|
||||
endAttributes = new G4VisAttributes(G4Colour(1.0, 0.0, 0.0)); // red
|
||||
endAttributes -> SetVisibility(true);
|
||||
endAttributes -> SetForceAuxEdgeVisible(true);
|
||||
logical_steel_shell -> SetVisAttributes(steelAttributes);
|
||||
logical_End1_steel_shell -> SetVisAttributes(endAttributes);
|
||||
logical_End2_steel_shell -> SetVisAttributes(endAttributes);
|
||||
logical_cable -> SetVisAttributes(steelAttributes);
|
||||
|
||||
G4Colour magenta (1.0, 0.0, 1.0) ;
|
||||
|
||||
simpleIridiumVisAtt = new G4VisAttributes(magenta);
|
||||
simpleIridiumVisAtt -> SetVisibility(true);
|
||||
simpleIridiumVisAtt -> SetForceWireframe(true);
|
||||
logical_iridium_core -> SetVisAttributes(simpleIridiumVisAtt);
|
||||
}
|
||||
|
||||
void BrachyDetectorConstructionFlexi::CleanFlexi()
|
||||
{
|
||||
delete simpleIridiumVisAtt;
|
||||
simpleIridiumVisAtt = 0;
|
||||
|
||||
delete endAttributes;
|
||||
endAttributes = 0;
|
||||
|
||||
delete steelAttributes;
|
||||
steelAttributes = 0;
|
||||
|
||||
delete physical_iridium_core;
|
||||
physical_iridium_core = 0 ;
|
||||
|
||||
delete logical_iridium_core;
|
||||
logical_iridium_core = 0;
|
||||
|
||||
delete iridium_core;
|
||||
iridium_core = 0;
|
||||
|
||||
delete physical_cable;
|
||||
physical_cable = 0;
|
||||
|
||||
delete logical_cable;
|
||||
logical_cable = 0;
|
||||
|
||||
delete cable;
|
||||
cable = 0;
|
||||
|
||||
delete physical_End2_steel_shell;
|
||||
physical_End2_steel_shell = 0;
|
||||
|
||||
delete logical_End2_steel_shell;
|
||||
logical_End2_steel_shell = 0;
|
||||
|
||||
delete End2_steel_shell;
|
||||
End2_steel_shell = 0;
|
||||
|
||||
delete physical_End1_steel_shell;
|
||||
physical_End1_steel_shell = 0;
|
||||
|
||||
delete logical_End1_steel_shell;
|
||||
logical_End1_steel_shell = 0;
|
||||
|
||||
delete End1_steel_shell;
|
||||
End1_steel_shell = 0;
|
||||
|
||||
delete physical_air_gap;
|
||||
physical_air_gap = 0;
|
||||
|
||||
delete logical_air_gap;
|
||||
logical_air_gap = 0;
|
||||
|
||||
delete air_gap;
|
||||
air_gap = 0;
|
||||
|
||||
delete physical_steel_shell;
|
||||
physical_steel_shell = 0;
|
||||
|
||||
delete logical_steel_shell;
|
||||
logical_steel_shell = 0;
|
||||
|
||||
delete steel_shell;
|
||||
steel_shell = 0;
|
||||
|
||||
G4RunManager::GetRunManager() -> GeometryHasBeenModified();
|
||||
}
|
||||
@@ -36,7 +36,7 @@
|
||||
// * *
|
||||
// ****************************************
|
||||
//
|
||||
// $Id: BrachyDetectorConstructionI.cc 69765 2013-05-14 10:11:22Z gcosmo $
|
||||
// $Id: BrachyDetectorConstructionI.cc 100821 2016-11-02 15:21:34Z gcosmo $
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
@@ -78,7 +78,7 @@ void BrachyDetectorConstructionI::ConstructIodium(G4VPhysicalVolume* mother)
|
||||
//Get materials for source construction ...
|
||||
G4Material* titanium = pMaterial -> GetMat("titanium");
|
||||
G4Material* air = pMaterial -> GetMat("Air");
|
||||
G4Material* iodium = pMaterial -> GetMat("Iodium");
|
||||
G4Material* iodium = pMaterial -> GetMat("Iodine");
|
||||
|
||||
G4Colour red (1.0, 0.0, 0.0) ;
|
||||
G4Colour magenta (1.0, 0.0, 1.0) ;
|
||||
|
||||
@@ -0,0 +1,223 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 - Brachytherapy example
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// Code developed by:
|
||||
// D. Cutajar
|
||||
//
|
||||
// ****************************************
|
||||
// * *
|
||||
// * BrachyDetectorConstructionTG186.cc *
|
||||
// * *
|
||||
// ****************************************
|
||||
//
|
||||
// $Id: BrachyDetectorConstructionTG186.cc 69765 2013-05-14 10:11:22Z gcosmo $
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "BrachyDetectorConstructionTG186.hh"
|
||||
#include "G4Sphere.hh"
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4Box.hh"
|
||||
#include "G4Tubs.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
#include "G4Transform3D.hh"
|
||||
#include "G4RotationMatrix.hh"
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "BrachyMaterial.hh"
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "G4Colour.hh"
|
||||
|
||||
BrachyDetectorConstructionTG186::BrachyDetectorConstructionTG186()
|
||||
:
|
||||
TG186capsule(0),TG186capsuleLog(0),
|
||||
TG186capsulePhys(0),
|
||||
TG186capsuleTip(0),TG186capsuleTipLog(0),
|
||||
TG186capsuleTipPhys(0),
|
||||
TG186iridiumCore(0),TG186iridiumCoreLog(0),
|
||||
TG186iridiumCorePhys(0),
|
||||
TG186cable(0),TG186cableLog(0),
|
||||
TG186cablePhys(0),
|
||||
TG186simpleCapsuleVisAtt(0),TG186simpleCapsuleTipVisAtt(0),TG186simpleIridiumVisAtt(0),
|
||||
TG186simpleCableVisAtt(0)
|
||||
{
|
||||
pMat = new BrachyMaterial();
|
||||
}
|
||||
|
||||
BrachyDetectorConstructionTG186::~BrachyDetectorConstructionTG186()
|
||||
{
|
||||
delete pMat;
|
||||
}
|
||||
|
||||
void BrachyDetectorConstructionTG186::ConstructTG186(G4VPhysicalVolume* mother)
|
||||
{
|
||||
G4Colour red (1.0, 0.0, 0.0) ;
|
||||
G4Colour magenta (1.0, 0.0, 1.0) ;
|
||||
|
||||
G4Material* capsuleMat = pMat -> GetMat("Stainless steel");
|
||||
G4Material* iridiumMat = pMat -> GetMat("Iridium");
|
||||
|
||||
// Capsule main body
|
||||
TG186capsule = new G4Tubs("TG186-Capsule",0,0.5*mm,2.25*mm,0.*deg,360.*deg);
|
||||
TG186capsuleLog = new G4LogicalVolume(TG186capsule,capsuleMat,"TG186-CapsuleLog");
|
||||
TG186capsulePhys = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,-0.4*mm),
|
||||
"TG186-IridiumCapsulePhys",
|
||||
TG186capsuleLog,
|
||||
mother,
|
||||
false,
|
||||
0, true);
|
||||
|
||||
// Capsule tip
|
||||
TG186capsuleTip = new G4Sphere("Tg186-CapsuleTipIridium",
|
||||
0.*mm,
|
||||
0.5*mm,
|
||||
0.*deg,
|
||||
360.*deg,
|
||||
0.*deg,
|
||||
90.*deg);
|
||||
|
||||
TG186capsuleTipLog = new G4LogicalVolume(TG186capsuleTip,
|
||||
capsuleMat,
|
||||
"CapsuleTipIridumLog");
|
||||
TG186capsuleTipPhys = new G4PVPlacement(0,
|
||||
G4ThreeVector(0.,0.,1.85*mm),
|
||||
"TG186-CapsuleTipIridiumPhys",
|
||||
TG186capsuleTipLog,
|
||||
mother,
|
||||
false,
|
||||
0, true);
|
||||
|
||||
TG186cable = new G4Tubs("TG186-cable",
|
||||
0.*mm,
|
||||
0.5*mm,
|
||||
1.0*mm,
|
||||
0.*deg,
|
||||
360.*deg);
|
||||
|
||||
TG186cableLog = new G4LogicalVolume(TG186cable,
|
||||
capsuleMat,
|
||||
"TG186-cableLog");
|
||||
TG186cablePhys = new G4PVPlacement(0,
|
||||
G4ThreeVector(0.,0.,-3.65*mm),
|
||||
"TG186-CablePhys",
|
||||
TG186cableLog,
|
||||
mother,
|
||||
false,
|
||||
0, true);
|
||||
|
||||
// Iridium core
|
||||
TG186iridiumCore = new G4Tubs("TG186-IrCore",0,0.30*mm,1.75*mm,0.*deg,360.*deg);
|
||||
TG186iridiumCoreLog = new G4LogicalVolume(TG186iridiumCore,
|
||||
iridiumMat,
|
||||
"TG186-IridiumCoreLog");
|
||||
TG186iridiumCorePhys = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,0.4*mm),
|
||||
"TG186-IridiumCorePhys",
|
||||
TG186iridiumCoreLog,
|
||||
TG186capsulePhys,
|
||||
false,
|
||||
0, true);
|
||||
|
||||
TG186simpleCapsuleVisAtt = new G4VisAttributes(red);
|
||||
TG186simpleCapsuleVisAtt -> SetVisibility(true);
|
||||
TG186simpleCapsuleVisAtt -> SetForceWireframe(true);
|
||||
TG186capsuleLog -> SetVisAttributes(TG186simpleCapsuleVisAtt);
|
||||
|
||||
TG186simpleCapsuleTipVisAtt = new G4VisAttributes(red);
|
||||
TG186simpleCapsuleTipVisAtt -> SetVisibility(true);
|
||||
TG186simpleCapsuleTipVisAtt -> SetForceSolid(true);
|
||||
TG186capsuleTipLog -> SetVisAttributes(TG186simpleCapsuleTipVisAtt);
|
||||
|
||||
TG186simpleIridiumVisAtt = new G4VisAttributes(magenta);
|
||||
TG186simpleIridiumVisAtt -> SetVisibility(true);
|
||||
TG186simpleIridiumVisAtt -> SetForceWireframe(true);
|
||||
TG186iridiumCoreLog -> SetVisAttributes(TG186simpleIridiumVisAtt);
|
||||
|
||||
TG186simpleCableVisAtt = new G4VisAttributes(red);
|
||||
TG186simpleCableVisAtt -> SetVisibility(true);
|
||||
TG186simpleCableVisAtt -> SetForceSolid(true);
|
||||
TG186cableLog -> SetVisAttributes(TG186simpleCableVisAtt);
|
||||
}
|
||||
|
||||
void BrachyDetectorConstructionTG186::CleanTG186()
|
||||
{
|
||||
|
||||
delete TG186simpleIridiumVisAtt;
|
||||
TG186simpleIridiumVisAtt = 0;
|
||||
|
||||
delete TG186iridiumCorePhys;
|
||||
TG186iridiumCorePhys = 0;
|
||||
|
||||
delete TG186iridiumCore;
|
||||
TG186iridiumCore = 0;
|
||||
|
||||
delete TG186iridiumCoreLog;
|
||||
TG186iridiumCoreLog = 0 ;
|
||||
|
||||
delete TG186simpleCapsuleTipVisAtt;
|
||||
TG186simpleCapsuleTipVisAtt = 0;
|
||||
|
||||
delete TG186capsuleTipPhys;
|
||||
TG186capsuleTipPhys = 0;
|
||||
|
||||
delete TG186capsuleTip;
|
||||
TG186capsuleTip = 0;
|
||||
|
||||
delete TG186capsuleTipLog;
|
||||
TG186capsuleTipLog = 0;
|
||||
|
||||
delete TG186simpleCapsuleVisAtt;
|
||||
TG186simpleCapsuleVisAtt = 0;
|
||||
|
||||
delete TG186capsulePhys;
|
||||
TG186capsulePhys = 0;
|
||||
|
||||
delete TG186capsule;
|
||||
TG186capsule = 0;
|
||||
|
||||
delete TG186capsuleLog;
|
||||
TG186capsuleLog = 0;
|
||||
|
||||
delete TG186cable;
|
||||
TG186cable = 0;
|
||||
|
||||
delete TG186cableLog;
|
||||
TG186cableLog = 0;
|
||||
|
||||
delete TG186cablePhys;
|
||||
TG186cablePhys = 0;
|
||||
|
||||
delete TG186simpleCableVisAtt;
|
||||
TG186simpleCableVisAtt = 0;
|
||||
|
||||
G4RunManager::GetRunManager() -> GeometryHasBeenModified();
|
||||
}
|
||||
@@ -34,7 +34,7 @@
|
||||
// *********************************
|
||||
//
|
||||
//
|
||||
// $Id: BrachyDetectorMessenger.cc 69765 2013-05-14 10:11:22Z gcosmo $
|
||||
// $Id: BrachyDetectorMessenger.cc 100821 2016-11-02 15:21:34Z gcosmo $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -58,7 +58,7 @@ BrachyDetectorMessenger::BrachyDetectorMessenger( BrachyDetectorConstruction* De
|
||||
sourceCmd -> SetGuidance("Assign the selected geometry to G4RunManager.");
|
||||
sourceCmd -> SetParameterName("choice",true);
|
||||
sourceCmd -> SetDefaultValue(" ");
|
||||
sourceCmd -> SetCandidates("Iridium Iodium Leipzig ");
|
||||
sourceCmd -> SetCandidates("TG186 Flexi Iodine Leipzig");
|
||||
sourceCmd -> AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ void BrachyDetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue
|
||||
// Switch the source in the phantom
|
||||
if( command == sourceCmd )
|
||||
{
|
||||
if(newValue=="Iodium" || newValue=="Iridium"|| newValue=="Leipzig")
|
||||
if(newValue=="Iodine" || newValue=="TG186"|| newValue=="Leipzig" || newValue== "Flexi")
|
||||
{
|
||||
detector -> SelectBrachytherapicSeed(newValue);
|
||||
detector -> SwitchBrachytherapicSeed();
|
||||
|
||||
@@ -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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Code developed by:
|
||||
// S. Guatelli, D. Cutajar, J. Poder,
|
||||
//Centre For Medical Radiation Physics, University of Wollongong
|
||||
//
|
||||
// *******************************
|
||||
// * *
|
||||
// * BrachyFactoryFlexi *
|
||||
// * *
|
||||
// *******************************
|
||||
//
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "BrachyFactoryFlexi.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "Randomize.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4ParticleGun.hh"
|
||||
#include "G4IonTable.hh"
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4RunManager.hh"
|
||||
#include "BrachyDetectorMessenger.hh"
|
||||
#include "BrachyDetectorConstructionFlexi.hh"
|
||||
|
||||
BrachyFactoryFlexi:: BrachyFactoryFlexi()
|
||||
{
|
||||
flexiSource = new BrachyDetectorConstructionFlexi();
|
||||
}
|
||||
|
||||
BrachyFactoryFlexi:: ~BrachyFactoryFlexi()
|
||||
{
|
||||
delete flexiSource;
|
||||
}
|
||||
|
||||
void BrachyFactoryFlexi::CreateSource(G4VPhysicalVolume* mother)
|
||||
{
|
||||
flexiSource -> ConstructFlexi(mother);
|
||||
}
|
||||
|
||||
void BrachyFactoryFlexi::CleanSource()
|
||||
{
|
||||
flexiSource -> CleanFlexi();
|
||||
flexiSource = 0;
|
||||
}
|
||||
@@ -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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Code developed by:
|
||||
// S.Guatelli & D. Cutajar
|
||||
//
|
||||
// *******************************
|
||||
// * *
|
||||
// * BrachyFactoryIr *
|
||||
// * *
|
||||
// *******************************
|
||||
//
|
||||
// $Id: BrachyFactoryIr.cc 69765 2013-05-14 10:11:22Z gcosmo $
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "BrachyFactoryTG186.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "Randomize.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4ParticleGun.hh"
|
||||
#include "G4IonTable.hh"
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4RunManager.hh"
|
||||
#include "BrachyDetectorMessenger.hh"
|
||||
#include "BrachyDetectorConstructionTG186.hh"
|
||||
|
||||
BrachyFactoryTG186:: BrachyFactoryTG186()
|
||||
{
|
||||
TG186iridiumSource = new BrachyDetectorConstructionTG186();
|
||||
}
|
||||
|
||||
BrachyFactoryTG186:: ~BrachyFactoryTG186()
|
||||
{
|
||||
delete TG186iridiumSource;
|
||||
}
|
||||
|
||||
void BrachyFactoryTG186::CreateSource(G4VPhysicalVolume* mother)
|
||||
{
|
||||
TG186iridiumSource -> ConstructTG186(mother);
|
||||
}
|
||||
|
||||
void BrachyFactoryTG186::CleanSource()
|
||||
{
|
||||
TG186iridiumSource -> CleanTG186();
|
||||
TG186iridiumSource = 0;
|
||||
}
|
||||
@@ -32,7 +32,7 @@
|
||||
// * *
|
||||
// *******************************
|
||||
//
|
||||
// $Id: BrachyMaterial.cc 69765 2013-05-14 10:11:22Z gcosmo $
|
||||
// $Id: BrachyMaterial.cc 100821 2016-11-02 15:21:34Z gcosmo $
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "Randomize.hh"
|
||||
@@ -183,16 +183,26 @@ void BrachyMaterial::DefineMaterials()
|
||||
matsteel->AddElement(elCr, 0.19);
|
||||
matsteel->AddElement(elNi, 0.10);
|
||||
matsteel->AddElement(elFe, 0.68);
|
||||
|
||||
//Define Stainless-steel-304 - Flexi source
|
||||
d = 7.999*g/cm3 ;
|
||||
mat304steel = new G4Material("Stainless steel 304",d,6);
|
||||
mat304steel->AddElement(elMn, 0.02);
|
||||
mat304steel->AddElement(elSi, 0.01);
|
||||
mat304steel->AddElement(elCr, 0.19);
|
||||
mat304steel->AddElement(elNi, 0.10);
|
||||
mat304steel->AddElement(elFe, 0.6792);
|
||||
mat304steel->AddElement(elC, 0.0008);
|
||||
|
||||
//gold(chimica degli elementi N.N Greenwood,A.Earnshaw)
|
||||
//gold
|
||||
A = 196.97*g/mole;
|
||||
d = 19.32*g/cm3;
|
||||
gold = new G4Material("gold",Z = 79.,A,d);
|
||||
|
||||
//IodiumCore(chimica degli elementi N.N Greenwood,A.Earnshaw)
|
||||
//Iodine Core
|
||||
A = 124.9*g/mole;
|
||||
d = 4.862*g/cm3;
|
||||
matI = new G4Material("Iodium",Z = 53.,A,d);
|
||||
matI = new G4Material("Iodine",Z = 53.,A,d);
|
||||
|
||||
//ceramic(Medical Physics, May 2000)
|
||||
d = 2.88*g/cm3;
|
||||
|
||||
@@ -55,16 +55,13 @@ BrachyPhysicsList::BrachyPhysicsList(): G4VModularPhysicsList()
|
||||
SetVerboseLevel(1);
|
||||
|
||||
// EM physics: 3 alternatives
|
||||
emPhysicsList = new G4EmLivermorePhysics();
|
||||
|
||||
emPhysicsList = new G4EmStandardPhysics_option4(1);
|
||||
// or
|
||||
//emPhysicsList = new G4EmStandardPhysics_option4(1);
|
||||
|
||||
// Alternatively you can substitute this physics list
|
||||
// with the LowEnergy Livermore or LowEnergy Penelope:
|
||||
// emPhysicsList = new G4EmLivermorePhysics();
|
||||
// Low Energy based on Livermore Evaluated Data Libraries
|
||||
//
|
||||
// Penelope physics
|
||||
//emPhysicsList = new G4EmPenelopePhysics();
|
||||
// or
|
||||
// emPhysicsList = new G4EmPenelopePhysics();
|
||||
|
||||
// Add Decay
|
||||
decPhysicsList = new G4DecayPhysics();
|
||||
@@ -99,7 +96,7 @@ void BrachyPhysicsList::SetCuts()
|
||||
// Definition of threshold of production
|
||||
// of secondary particles
|
||||
// This is defined in range.
|
||||
defaultCutValue = 0.1 * mm;
|
||||
defaultCutValue = 0.05 * mm;
|
||||
SetCutValue(defaultCutValue, "gamma");
|
||||
SetCutValue(defaultCutValue, "e-");
|
||||
SetCutValue(defaultCutValue, "e+");
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// Code developed by:
|
||||
// S.Guatelli
|
||||
// S.Guatelli and D. Cutajar
|
||||
//
|
||||
//
|
||||
// *******************************
|
||||
@@ -38,7 +38,7 @@
|
||||
// * *
|
||||
// *******************************
|
||||
//
|
||||
// $Id: BrachyRunAction.cc 69765 2013-05-14 10:11:22Z gcosmo $
|
||||
// $Id: BrachyRunAction.cc 100821 2016-11-02 15:21:34Z gcosmo $
|
||||
//
|
||||
|
||||
#include "BrachyRunAction.hh"
|
||||
|
||||
@@ -97,7 +97,7 @@ if(msMapItr == fSMap.end())
|
||||
return;
|
||||
}
|
||||
|
||||
std::map<G4int, G4double*> * score = msMapItr -> second-> GetMap();
|
||||
std::map<G4int, G4StatDouble*> * score = msMapItr -> second-> GetMap();
|
||||
|
||||
ofile << "# primitive scorer name: " << msMapItr -> first << G4endl;
|
||||
//
|
||||
@@ -108,27 +108,31 @@ ofile << std::setprecision(16); // for double value with 8 bytes
|
||||
for(int x = 0; x < fNMeshSegments[0]; x++) {
|
||||
for(int y = 0; y < fNMeshSegments[1]; y++) {
|
||||
for(int z = 0; z < fNMeshSegments[2]; z++){
|
||||
G4int numberOfVoxel = fNMeshSegments[0];
|
||||
G4int numberOfVoxel_x = fNMeshSegments[0];
|
||||
G4int numberOfVoxel_y = fNMeshSegments[1];
|
||||
G4int numberOfVoxel_z =fNMeshSegments[2];
|
||||
// If the voxel width is changed in the macro file,
|
||||
// the voxel width variable must be updated
|
||||
G4double voxelWidth = 1. *mm;
|
||||
G4double voxelWidth = 0.25 *mm;
|
||||
//
|
||||
G4double xx = ( - numberOfVoxel + 1+ 2*x )* voxelWidth/2;
|
||||
G4double yy = ( - numberOfVoxel + 1+ 2*y )* voxelWidth/2;
|
||||
G4double zz = ( - numberOfVoxel + 1+ 2*z )* voxelWidth/2;
|
||||
G4double xx = ( - numberOfVoxel_x + 1+ 2*x )* voxelWidth/2;
|
||||
G4double yy = ( - numberOfVoxel_y + 1+ 2*y )* voxelWidth/2;
|
||||
G4double zz = ( - numberOfVoxel_z + 1+ 2*z )* voxelWidth/2;
|
||||
G4int idx = GetIndex(x, y, z);
|
||||
std::map<G4int, G4double*>::iterator value = score -> find(idx);
|
||||
std::map<G4int, G4StatDouble*>::iterator value = score -> find(idx);
|
||||
|
||||
if (value != score -> end())
|
||||
{
|
||||
// Print in the ASCII output file the information
|
||||
|
||||
ofile << xx << " " << yy << " " << zz <<" "
|
||||
<<*(value->second)/keV << G4endl;
|
||||
<<(value->second->sum_wx())/keV << G4endl;
|
||||
|
||||
#ifdef ANALYSIS_USE
|
||||
// Save the same information in the output analysis file
|
||||
BrachyAnalysisManager* analysis = BrachyAnalysisManager::GetInstance();
|
||||
analysis -> FillNtupleWithEnergyDeposition(xx, yy, zz, *(value->second)/keV);
|
||||
|
||||
if(zz> -0.125 *mm && zz < 0.125*mm) analysis -> FillH2WithEnergyDeposition(xx,yy, (value->second->sum_wx())/keV);
|
||||
#endif
|
||||
}}}}
|
||||
|
||||
|
||||
@@ -46,7 +46,6 @@ set(EXAMPLECOMPOSITECALORIMETER_SCRIPTS
|
||||
gui.mac
|
||||
test.g4mac
|
||||
vis.mac
|
||||
icons.mac
|
||||
dataconf/g4testbeamhcal96.conf
|
||||
dataconf/testbeamhcal96.conf
|
||||
datageom/tbhcal96.geom
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
-------------------------------------------------------------------
|
||||
$Id: History 95947 2016-03-03 10:39:24Z gcosmo $
|
||||
$Id: History 101381 2016-11-16 10:58:00Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -9,6 +9,12 @@ $Id: History 95947 2016-03-03 10:39:24Z gcosmo $
|
||||
Example History file
|
||||
---------------------
|
||||
|
||||
01.08.2016 - A. Dotti (ccal-V10-02-02)
|
||||
- Fix issues with a char* length
|
||||
|
||||
02.11.2016 - L. Garnier (ccal-V10-02-01)
|
||||
- Remove icons.mac. Automatically include since interfaces-V10-02-07
|
||||
|
||||
03.03.2016 - L. Pandola (ccal-V10-02-00)
|
||||
- Replace std::exp with G4Exp()
|
||||
|
||||
|
||||
@@ -31,7 +31,4 @@
|
||||
/gui/addButton numEvents 10 "/run/beamOn 10"
|
||||
/gui/addButton numEvents 50 "/run/beamOn 50"
|
||||
/gui/addButton numEvents 100 "/run/beamOn 100"
|
||||
#
|
||||
|
||||
#Add an icon toolbar
|
||||
/control/execute icons.mac
|
||||
#
|
||||
@@ -66,7 +66,7 @@ CCalAnalysis::CCalAnalysis() :
|
||||
// Create a tuple :
|
||||
// Create ntuple
|
||||
analysisManager->CreateNtuple("ntuple1", "Event info");
|
||||
char tupleid[6];
|
||||
char tupleid[7];
|
||||
for (int i=0;i<28;i++)
|
||||
{
|
||||
sprintf(tupleid,"hcal%d",i);
|
||||
|
||||
@@ -7,6 +7,15 @@ francesco.romano@lns.infn.it
|
||||
History file of the GammaKnife application
|
||||
====================================================
|
||||
|
||||
04.11.2016 F.Romano Tag: gammaknife-V10-02-02
|
||||
- macro files modifeid for correct scorer rotation
|
||||
|
||||
06.09.2016 M.Asai Tag: gammaknife-V10-02-01
|
||||
- Modify sdt::map<G4int, G4double*> to sdt::map<G4int, G4StatDouble*>
|
||||
|
||||
04.09.2016 M.Asai Tag: gammaknife-V10-02-00
|
||||
- Modify sdt::map<G4int, G4double*> to sdt::map<G4int, G4StatDouble*>
|
||||
|
||||
06.03.2015 A.Dotti Tag: gammaknife-V10-01-00
|
||||
- Moving of GPS defaults to master
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
/score/create/boxMesh boxMesh_1
|
||||
/score/mesh/boxSize 22.5 22.5 22.5 mm
|
||||
/score/mesh/rotate/rotateX 360 deg # Note: Hack to enable rotation (as of 10.3)
|
||||
/score/mesh/nBin 45 45 45
|
||||
/score/quantity/energyDeposit eDep
|
||||
/score/close
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
/score/create/boxMesh boxMesh_1
|
||||
/score/mesh/boxSize 22.5 22.5 22.5 mm
|
||||
/score/mesh/rotate/rotateX 360 deg # Note: Hack to enable rotation (as of 10.3)
|
||||
/score/mesh/nBin 45 45 45
|
||||
/score/quantity/energyDeposit eDep
|
||||
/score/close
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -23,6 +23,7 @@
|
||||
|
||||
/score/create/boxMesh boxMesh_1
|
||||
/score/mesh/boxSize 22.5 22.5 22.5 mm
|
||||
/score/mesh/rotate/rotateX 360 deg # Note: Hack to enable rotation (as of 10.3)
|
||||
/score/mesh/nBin 45 45 45
|
||||
/score/quantity/energyDeposit eDep
|
||||
/score/close
|
||||
|
||||
@@ -107,7 +107,8 @@ void GammaKnifeController::PrepareHitsAccumulation()
|
||||
for( ; it != scoreMap.end(); it++)
|
||||
{
|
||||
std::string hitMapName = it->first;
|
||||
G4THitsMap<G4double>* hitMapToStore = new G4THitsMap<G4double>("GammaKnifeController", hitMapName);
|
||||
G4THitsMap<G4StatDouble>* hitMapToStore
|
||||
= new G4THitsMap<G4StatDouble>("GammaKnifeController", hitMapName);
|
||||
storedScoreMap[ hitMapName ] = hitMapToStore;
|
||||
}
|
||||
}
|
||||
@@ -130,8 +131,18 @@ void GammaKnifeController::StoreHits()
|
||||
MeshScoreMap::iterator it = scoreMap.begin();
|
||||
for( ; it != scoreMap.end(); it++)
|
||||
{
|
||||
std::string hitMapName = it->first;
|
||||
*storedScoreMap[hitMapName] += *(it->second);
|
||||
std::string hitMapName = it->first;
|
||||
//*storedScoreMap[hitMapName] += *(it->second);
|
||||
auto storedMap = storedScoreMap[hitMapName]->GetMap();
|
||||
auto mapItr = it->second->GetMap()->begin();
|
||||
for(;mapItr!=it->second->GetMap()->end();mapItr++)
|
||||
{
|
||||
auto key = mapItr->first;
|
||||
auto val = mapItr->second;
|
||||
if(storedMap->find(key)==storedMap->end())
|
||||
{ (*storedMap)[key] = new G4StatDouble(); }
|
||||
(*storedMap)[key]->add(val);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ void GammaKnifeDetectorConstruction::ConstructBeamLine()
|
||||
|
||||
|
||||
// The treatment room is invisible in the Visualisation
|
||||
logicTreatmentRoom -> SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicTreatmentRoom -> SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
|
||||
|
||||
// Visualisation attributes of all elements colours
|
||||
|
||||
@@ -49,7 +49,7 @@ target_link_libraries(GammaRayTel ${Geant4_LIBRARIES})
|
||||
# relies on these scripts being in the current working directory.
|
||||
#
|
||||
set(gammaray_telescope_SCRIPTS
|
||||
emlowe.mac emstd.mac gammaraytel.in gammaraytel.out macro1.mac macro2.mac macro3.mac macro4.mac macro5.mac prerunGammaRayTel.mac)
|
||||
emlowe.mac emstd.mac gammaraytel.in gammaraytel.out macro1.mac macro2.mac macro3.mac macro4.mac macro5.mac macro6.mac physics.mac physics_polarized.mac prerunGammaRayTel.mac)
|
||||
|
||||
foreach(_script ${gammaray_telescope_SCRIPTS})
|
||||
configure_file(
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: GammaRayTel.cc 82630 2014-07-01 09:43:00Z gcosmo $
|
||||
// $Id: GammaRayTel.cc 100697 2016-10-31 11:32:35Z gcosmo $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
@@ -83,10 +83,10 @@ int main(int argc, char** argv)
|
||||
// POSSIBILITY TO SELECT ANOTHER PHYSICS LIST
|
||||
// do not use GammaRayTelPhysicsList, this is old style and crashes at
|
||||
// program exit
|
||||
//runManager->SetUserInitialization(new GammaRayTelPhysicsList);
|
||||
runManager->SetUserInitialization(new GammaRayTelPhysicsList);
|
||||
|
||||
// runManager->SetUserInitialization(new QGSP_BIC);
|
||||
runManager->SetUserInitialization(new FTFP_BERT);
|
||||
//runManager->SetUserInitialization(new FTFP_BERT);
|
||||
|
||||
//Initialize actions
|
||||
runManager->SetUserInitialization(new GammaRayTelActionInitializer());
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
-------------------------------------------------------------------
|
||||
$Id: History 93678 2015-10-28 10:03:43Z gcosmo $
|
||||
$Id: History 101656 2016-11-21 08:57:32Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -9,6 +9,17 @@ $Id: History 93678 2015-10-28 10:03:43Z gcosmo $
|
||||
History file
|
||||
------------
|
||||
|
||||
19.11.2016 - A. Dotti gammaraytel-V10-02-02
|
||||
explicit set of SDs to manager
|
||||
|
||||
31.10.2016 - F. Longo and L. Pandola, Tag gammaraytel-V10-02-01
|
||||
Extended physics list to give the possibility to handle
|
||||
polarized gamma-rays.
|
||||
|
||||
28.10.2016 - G. Folger, Tag gammaraytel-V10-02-00
|
||||
Remove direct use of aParticleIterator, use GetParticleTableIterator().
|
||||
fix required by clang39 on Linux and MAC
|
||||
|
||||
27.10.2015 - A. Ribon, Tag gammaraytel-V10-01-00
|
||||
GammaRayTelIonPhysics: replaced old G4GGNuclNuclCrossSection
|
||||
class with the new, recommended one, G4ComponentGGNuclNuclXsc .
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/control/verbose 1
|
||||
/control/saveHistory
|
||||
/run/verbose 1
|
||||
#/control/execute emstd.mac
|
||||
/control/execute physics.mac
|
||||
|
||||
/run/initialize
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -23,38 +23,60 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Authors: Susanna Guatelli, susanna@uow.edu.au,
|
||||
// Authors: Jeremy Davis, jad028@uowmail.edu.au
|
||||
//
|
||||
// Code based on the hadrontherapy advanced example && radioprotection example
|
||||
|
||||
#ifndef GammaRayTelPhysicsList_h
|
||||
#define GammaRayTelPhysicsList_h 1
|
||||
#define GammarayTelPhysicsList_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "G4EmConfigurator.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4VPhysicsConstructor;
|
||||
class GammaRayTelPhysicsListMessenger;
|
||||
|
||||
class GammaRayTelPhysicsList: public G4VModularPhysicsList
|
||||
{
|
||||
public:
|
||||
|
||||
GammaRayTelPhysicsList();
|
||||
virtual ~GammaRayTelPhysicsList();
|
||||
|
||||
public:
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
void SetRegionCut(G4double);
|
||||
void AddPhysicsList(const G4String& name);
|
||||
// void ConstructProcess();
|
||||
|
||||
|
||||
void ConstructParticle();
|
||||
|
||||
void SetCuts();
|
||||
void SetCutForGamma(G4double);
|
||||
void SetCutForElectron(G4double);
|
||||
void SetCutForPositron(G4double);
|
||||
|
||||
void AddPhysicsList(const G4String& name);
|
||||
void ConstructProcess();
|
||||
|
||||
void AddPackage(const G4String& name);
|
||||
|
||||
private:
|
||||
|
||||
G4EmConfigurator em_config;
|
||||
|
||||
G4double cutForGamma;
|
||||
G4double cutForElectron;
|
||||
G4double cutForPositron;
|
||||
|
||||
G4bool helIsRegisted;
|
||||
G4bool bicIsRegisted;
|
||||
G4bool biciIsRegisted;
|
||||
G4bool locIonIonInelasticIsRegistered;
|
||||
G4bool radioactiveDecayIsRegisted;
|
||||
|
||||
G4String emName;
|
||||
G4VPhysicsConstructor* emPhysicsList;
|
||||
GammaRayTelPhysicsListMessenger* pMessenger;
|
||||
G4VPhysicsConstructor* decPhysicsList;
|
||||
std::vector<G4VPhysicsConstructor*> hadronPhys;
|
||||
|
||||
GammaRayTelPhysicsListMessenger* pMessenger;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -23,8 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
// Authors: Susanna Guatelli, susanna@uow.edu.au,
|
||||
// Authors: Jeremy Davis, jad028@uowmail.edu.au
|
||||
//
|
||||
|
||||
// Code based on the hadrontherapy && radioprotection advanced example
|
||||
|
||||
#ifndef GammaRayTelPhysicsListMessenger_h
|
||||
#define GammaRayTelPhysicsListMessenger_h 1
|
||||
@@ -53,9 +56,12 @@ class GammaRayTelPhysicsListMessenger: public G4UImessenger
|
||||
GammaRayTelPhysicsList* pPhysicsList;
|
||||
|
||||
G4UIdirectory* physDir;
|
||||
G4UIcmdWithADoubleAndUnit* gammaCutCmd;
|
||||
G4UIcmdWithADoubleAndUnit* electCutCmd;
|
||||
G4UIcmdWithADoubleAndUnit* protoCutCmd;
|
||||
G4UIcmdWithADoubleAndUnit* allCutCmd;
|
||||
G4UIcmdWithAString* pListCmd;
|
||||
|
||||
G4UIcmdWithAString* packageListCmd;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -12,12 +12,11 @@
|
||||
/control/verbose 1
|
||||
/control/saveHistory
|
||||
/run/verbose 1
|
||||
/gun/sourceGen true
|
||||
/control/execute emstd.mac
|
||||
/control/execute physics.mac
|
||||
|
||||
/run/initialize
|
||||
|
||||
/particle/select gamma
|
||||
/gun/sourceGen true
|
||||
/gun/particle gamma
|
||||
/gun/vertexRadius 25. cm
|
||||
/gun/sourceType 2
|
||||
|
||||
|
||||
@@ -12,12 +12,8 @@
|
||||
/control/verbose 2
|
||||
/control/saveHistory
|
||||
/run/verbose 2
|
||||
/gun/sourceGen true
|
||||
|
||||
|
||||
/control/execute emlowe.mac
|
||||
|
||||
/run/initialize
|
||||
/gun/sourceGen true
|
||||
|
||||
/gun/particle mu-
|
||||
/gun/energy 100 MeV
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
/control/verbose 1
|
||||
/control/saveHistory
|
||||
/run/verbose 1
|
||||
/gun/sourceGen true
|
||||
/control/execute emstd.mac
|
||||
/run/initialize
|
||||
/gun/sourceGen true
|
||||
#/control/execute emstd.mac
|
||||
/gun/particle gamma
|
||||
/gun/energy 1 GeV
|
||||
/gun/vertexRadius 25. cm
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
/run/verbose 1
|
||||
/tracking/storeTrajectory 1
|
||||
/gun/sourceGen false
|
||||
/control/execute emlowe.mac
|
||||
/run/initialize
|
||||
/gun/sourceGen false
|
||||
/gps/particle e-
|
||||
/gps/direction 0 0 -1
|
||||
/gps/pos/type Plane
|
||||
|
||||
@@ -13,11 +13,9 @@
|
||||
/control/verbose 1
|
||||
/control/saveHistory
|
||||
/run/verbose 1
|
||||
/gun/sourceGen true
|
||||
|
||||
/run/initialize
|
||||
|
||||
/particle/select gamma
|
||||
/gun/sourceGen true
|
||||
/gun/particle gamma
|
||||
/gun/vertexRadius 25. cm
|
||||
/gun/sourceType 2
|
||||
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
# ----------------------------------------------
|
||||
# Example macro file for the GammaRayTel
|
||||
# Visualization with OpenGL
|
||||
# ----------------------------------------------
|
||||
# Authors: R.Giannitrapani, F.Longo and G.Santin
|
||||
# ----------------------------------------------
|
||||
|
||||
#
|
||||
# Sets some default verbose
|
||||
# and initializes the graphic.
|
||||
#
|
||||
/control/verbose 1
|
||||
/control/saveHistory
|
||||
/run/verbose 1
|
||||
/control/execute physics_polarized.mac
|
||||
/run/initialize
|
||||
/gun/sourceGen true
|
||||
#/particle/select geantino
|
||||
/gun/particle gamma
|
||||
/gun/vertexRadius 25. cm
|
||||
/gun/polarization 1 0 0
|
||||
/gun/energy 10 MeV
|
||||
/gun/sourceType 2
|
||||
|
||||
|
||||
|
||||
# You can modify the geometry of the telescope via a messenger
|
||||
|
||||
/payload/setConvMat Silicon
|
||||
/payload/setConvThick 1 micrometer
|
||||
/payload/setNbOfTKRLayers 25
|
||||
/payload/setNbOfCALLayers 2
|
||||
/payload/update
|
||||
|
||||
|
||||
# Use this open statement to create an OpenGL view:
|
||||
/vis/open OGL 600x600-0+0
|
||||
#
|
||||
# Use this open statement to create a .prim file suitable for
|
||||
# viewing in DAWN:
|
||||
#/vis/open DAWNFILE
|
||||
#
|
||||
# Use this open statement to create a .heprep file suitable for
|
||||
# viewing in HepRApp:
|
||||
#/vis/open HepRepFile
|
||||
#
|
||||
# Use this open statement to create a .wrl file suitable for
|
||||
# viewing in a VRML viewer:
|
||||
#/vis/open VRML2FILE
|
||||
#
|
||||
# Disable auto refresh and quieten vis messages whilst scene and
|
||||
# trajectories are established:
|
||||
/vis/viewer/set/autoRefresh false
|
||||
/vis/verbose errors
|
||||
#
|
||||
# Draw geometry:
|
||||
/vis/drawVolume
|
||||
#
|
||||
# Specify view angle:
|
||||
/vis/viewer/set/viewpointThetaPhi 90. 0.
|
||||
#
|
||||
# Specify zoom value:
|
||||
#/vis/viewer/zoom 2.
|
||||
#
|
||||
# Specify style (surface or wireframe):
|
||||
#/vis/viewer/set/style wireframe
|
||||
#
|
||||
# Draw coordinate axes:
|
||||
#/vis/scene/add/axes 0 0 0 1 m
|
||||
#
|
||||
# Draw smooth trajectories at end of event, showing trajectory points
|
||||
# as markers 2 pixels wide:
|
||||
/vis/scene/add/trajectories smooth
|
||||
/vis/modeling/trajectories/create/drawByCharge
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2
|
||||
# (if too many tracks cause core dump => /tracking/storeTrajectory 0)
|
||||
#
|
||||
# Draw hits at end of event:
|
||||
#/vis/scene/add/hits
|
||||
#
|
||||
# To draw only gammas:
|
||||
#/vis/filtering/trajectories/create/particleFilter
|
||||
#/vis/filtering/trajectories/particleFilter-0/add gamma
|
||||
#
|
||||
# To invert the above, drawing all particles except gammas,
|
||||
# keep the above two lines but also add:
|
||||
#/vis/filtering/trajectories/particleFilter-0/invert true
|
||||
#
|
||||
# Many other options are available with /vis/modeling and /vis/filtering.
|
||||
# For example, to select colour by particle ID:
|
||||
#/vis/modeling/trajectories/create/drawByParticleID
|
||||
#/vis/modeling/trajectories/drawByParticleID-0/set e- blue
|
||||
#
|
||||
# To superimpose all of the events from a given run:
|
||||
#/vis/scene/endOfEventAction accumulate
|
||||
#
|
||||
# Re-establish auto refreshing and verbosity:
|
||||
/vis/viewer/set/autoRefresh true
|
||||
/vis/verbose warnings
|
||||
#
|
||||
# For file-based drivers, use this to create an empty detector view:
|
||||
#/vis/viewer/flush
|
||||
|
||||
# run 10 events
|
||||
/run/beamOn 100
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
# Definition of the physics processes and models
|
||||
# Define the physics models
|
||||
/physics/addPhysics LowE_Livermore # Electromagnetic model
|
||||
/physics/addPhysics HPElastic # Hadronic elastic model with HP
|
||||
/physics/addPhysics binary # Hadronic inelastic model
|
||||
/physics/addPhysics binary_ion # Hadronic inelastic model for ions
|
||||
/physics/addPhysics radioactive_decay # Radioactive decay
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
# Definition of the physics processes and models
|
||||
# Define the physics models
|
||||
/physics/addPhysics LowE_Polarized # Electromagnetic model
|
||||
/physics/addPhysics HPElastic # Hadronic elastic model with HP
|
||||
/physics/addPhysics binary # Hadronic inelastic model
|
||||
/physics/addPhysics binary_ion # Hadronic inelastic model for ions
|
||||
/physics/addPhysics radioactive_decay # Radioactive decay
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
/control/saveHistory
|
||||
/run/verbose 1
|
||||
|
||||
#/control/execute emstd.mac
|
||||
#/control/execute physics.mac
|
||||
#/gun/particle gamma
|
||||
#/gun/energy 1 GeV
|
||||
#/gun/vertexRadius 25. cm
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: GammaRayTelDetectorConstruction.cc 82630 2014-07-01 09:43:00Z gcosmo $
|
||||
// $Id: GammaRayTelDetectorConstruction.cc 101905 2016-12-07 11:34:39Z gunter $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
@@ -776,18 +776,18 @@ G4VPhysicalVolume* GammaRayTelDetectorConstruction::ConstructPayload()
|
||||
//
|
||||
|
||||
// Invisible Volume
|
||||
logicWorld->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicPayload->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicTKR->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicTKRActiveTileX->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicTKRActiveTileY->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicPlane->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicConverter->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicCAL->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicCALLayerX->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicCALLayerY->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicTKRStripX->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicTKRStripY->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicWorld->SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
logicPayload->SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
logicTKR->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
logicTKRActiveTileX->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
logicTKRActiveTileY->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
logicPlane->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
logicConverter->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
logicCAL->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
logicCALLayerX->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
logicCALLayerY->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
logicTKRStripX->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
logicTKRStripY->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
|
||||
// Some visualization styles
|
||||
|
||||
@@ -835,8 +835,8 @@ void GammaRayTelDetectorConstruction::ConstructSDandField()
|
||||
trackerSD.Put(SD);
|
||||
}
|
||||
|
||||
G4SDManager::GetSDMpointer()->AddNewDetector(trackerSD.Get());
|
||||
//Flags the strips as sensitive .
|
||||
|
||||
if (logicTKRStripX)
|
||||
SetSensitiveDetector(logicTKRStripX,trackerSD.Get()); // ActiveStripX
|
||||
if (logicTKRStripY)
|
||||
@@ -851,6 +851,7 @@ void GammaRayTelDetectorConstruction::ConstructSDandField()
|
||||
GammaRayTelCalorimeterSD* SD = new GammaRayTelCalorimeterSD("CalorimeterSD");
|
||||
calorimeterSD.Put(SD);
|
||||
}
|
||||
G4SDManager::GetSDMpointer()->AddNewDetector(calorimeterSD.Get());
|
||||
if (logicCALDetectorX)
|
||||
SetSensitiveDetector(logicCALDetectorX,calorimeterSD.Get()); // BarX
|
||||
if (logicCALDetectorY)
|
||||
@@ -866,7 +867,7 @@ void GammaRayTelDetectorConstruction::ConstructSDandField()
|
||||
("AnticoincidenceSD");
|
||||
anticoincidenceSD.Put(SD);
|
||||
}
|
||||
|
||||
G4SDManager::GetSDMpointer()->AddNewDetector(anticoincidenceSD.Get());
|
||||
if (logicACT)
|
||||
SetSensitiveDetector(logicACT,anticoincidenceSD.Get()); // ACD top
|
||||
if (logicACL1)
|
||||
|
||||
@@ -51,9 +51,10 @@ void GammaRayTelGeneralPhysics::ConstructParticle()
|
||||
void GammaRayTelGeneralPhysics::ConstructProcess()
|
||||
{
|
||||
// Add Decay Process
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
auto particleIterator=GetParticleIterator();
|
||||
particleIterator->reset();
|
||||
while( (*particleIterator)() ){
|
||||
G4ParticleDefinition* particle = particleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
if (fDecayProcess.IsApplicable(*particle) && !particle->IsShortLived()) {
|
||||
pmanager ->AddProcess(&fDecayProcess);
|
||||
|
||||
@@ -23,179 +23,233 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Authors: Susanna Guatelli, susanna@uow.edu.au,
|
||||
// Authors: Jeremy Davis, jad028@uowmail.edu.au
|
||||
//
|
||||
// $Id: GammaRayTelPhysicsList.cc 66508 2012-12-19 10:16:45Z gcosmo $
|
||||
//
|
||||
//
|
||||
#include <iomanip>
|
||||
// Code based on the hadrontherapy && radioprotection advanced example
|
||||
|
||||
#include "GammaRayTelPhysicsList.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleWithCuts.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "GammaRayTelParticles.hh"
|
||||
#include "GammaRayTelGeneralPhysics.hh"
|
||||
#include "GammaRayTelEMstdPhysics.hh"
|
||||
#include "GammaRayTelEMlowePhysics.hh"
|
||||
#include "GammaRayTelMuonPhysics.hh"
|
||||
#include "GammaRayTelHadronPhysics.hh"
|
||||
#include "GammaRayTelIonPhysics.hh"
|
||||
|
||||
#include "GammaRayTelPhysicsListMessenger.hh"
|
||||
#include "G4PhysListFactory.hh"
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
// Physic lists (contained inside the Geant4 distribution)
|
||||
#include "G4EmStandardPhysics_option3.hh"
|
||||
#include "G4EmLivermorePhysics.hh"
|
||||
#include "G4EmPenelopePhysics.hh"
|
||||
#include "G4EmLivermorePolarizedPhysics.hh" // TBC
|
||||
|
||||
#include "G4DecayPhysics.hh"
|
||||
#include "G4HadronElasticPhysics.hh"
|
||||
#include "G4HadronDElasticPhysics.hh"
|
||||
#include "G4HadronElasticPhysicsHP.hh"
|
||||
#include "G4IonBinaryCascadePhysics.hh"
|
||||
#include "G4Decay.hh"
|
||||
#include "G4StepLimiter.hh"
|
||||
#include "G4LossTableManager.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4IonFluctuations.hh"
|
||||
#include "G4IonParametrisedLossModel.hh"
|
||||
#include "G4EmProcessOptions.hh"
|
||||
#include "G4HadronPhysicsQGSP_BIC_HP.hh"
|
||||
#include "G4RadioactiveDecayPhysics.hh"
|
||||
|
||||
|
||||
#include "GammaRayTelPhysicsListMessenger.hh"
|
||||
|
||||
GammaRayTelPhysicsList::GammaRayTelPhysicsList(): G4VModularPhysicsList()
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
GammaRayTelPhysicsList::GammaRayTelPhysicsList() : G4VModularPhysicsList()
|
||||
{
|
||||
// default cut value (1.0mm)
|
||||
defaultCutValue = 1.0*mm;
|
||||
SetVerboseLevel(1);
|
||||
G4LossTableManager::Instance();
|
||||
defaultCutValue = 100*micrometer;
|
||||
cutForGamma = defaultCutValue;
|
||||
cutForElectron = defaultCutValue;
|
||||
cutForPositron = defaultCutValue;
|
||||
|
||||
helIsRegisted = false;
|
||||
bicIsRegisted = false;
|
||||
biciIsRegisted = false;
|
||||
locIonIonInelasticIsRegistered = false;
|
||||
radioactiveDecayIsRegisted = false;
|
||||
|
||||
pMessenger = new GammaRayTelPhysicsListMessenger(this);
|
||||
|
||||
// Particles
|
||||
|
||||
|
||||
RegisterPhysics( new GammaRayTelParticles("particles") );
|
||||
|
||||
G4cout << "PARTICLES DONE" << G4endl;
|
||||
SetVerboseLevel(1);
|
||||
|
||||
// EM physics
|
||||
emPhysicsList = new G4EmStandardPhysics_option3(1);
|
||||
emName = G4String("emstandard_opt3");
|
||||
|
||||
emPhysicsList = new GammaRayTelEMstdPhysics;
|
||||
emName = G4String("Standard EM");
|
||||
|
||||
|
||||
// General Physics
|
||||
|
||||
RegisterPhysics( new GammaRayTelGeneralPhysics("general") );
|
||||
|
||||
G4cout << "GENERAL DONE" << G4endl;
|
||||
|
||||
|
||||
// Muon Physics
|
||||
|
||||
RegisterPhysics( new GammaRayTelMuonPhysics("muon"));
|
||||
|
||||
|
||||
G4cout << "MUON DONE" << G4endl;
|
||||
|
||||
// Hadron Physics
|
||||
RegisterPhysics( new GammaRayTelHadronPhysics("hadron"));
|
||||
|
||||
G4cout << "HADRONS DONE" << G4endl;
|
||||
|
||||
// Ion Physics
|
||||
RegisterPhysics( new GammaRayTelIonPhysics("ion"));
|
||||
|
||||
|
||||
G4cout << "IONS DONE" << G4endl;
|
||||
|
||||
// Decay physics and all particles
|
||||
decPhysicsList = new G4DecayPhysics();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
GammaRayTelPhysicsList::~GammaRayTelPhysicsList()
|
||||
{
|
||||
delete pMessenger;
|
||||
// delete emPhysicsList;
|
||||
delete emPhysicsList;
|
||||
delete decPhysicsList;
|
||||
for(size_t i=0; i<hadronPhys.size(); i++) {delete hadronPhys[i];}
|
||||
}
|
||||
|
||||
#include "G4Region.hh"
|
||||
#include "G4RegionStore.hh"
|
||||
#include "G4ProductionCuts.hh"
|
||||
|
||||
void GammaRayTelPhysicsList::SetCuts()
|
||||
{
|
||||
if (verboseLevel >0){
|
||||
G4cout << "GammaRayTelPhysicsList::SetCuts: default cut length : "
|
||||
<< G4BestUnit(defaultCutValue,"Length") << G4endl;
|
||||
}
|
||||
|
||||
// These values are used as the default production thresholds
|
||||
// for the world volume.
|
||||
|
||||
G4cout << "CUT STD" << G4endl;
|
||||
|
||||
SetCutsWithDefault();
|
||||
|
||||
|
||||
}
|
||||
|
||||
void GammaRayTelPhysicsList::SetRegionCut(G4double cutvalue)
|
||||
{
|
||||
|
||||
SetCutsWithDefault();
|
||||
|
||||
if (verboseLevel >0){
|
||||
G4cout << "GammaRayTelPhysicsList::SetCuts: default cut length : "
|
||||
<< G4BestUnit(defaultCutValue,"Length") << G4endl;
|
||||
}
|
||||
|
||||
G4cout << "CUTS NEW" << G4endl;
|
||||
|
||||
// Production thresholds for detector regions
|
||||
|
||||
G4String regName[] = {"Calorimeter","Tracker"};
|
||||
// G4double cutValue[] = {1*mm, 0.1*mm};
|
||||
G4double cutValue[] = {cutvalue, cutvalue/10.};
|
||||
|
||||
|
||||
|
||||
for(G4int i=0;i<2;i++)
|
||||
{
|
||||
G4Region* reg = G4RegionStore::GetInstance()->GetRegion(regName[i]);
|
||||
G4ProductionCuts* cuts = new G4ProductionCuts;
|
||||
cuts->SetProductionCut(cutValue[i]);
|
||||
reg->SetProductionCuts(cuts);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
void GammaRayTelPhysicsList::AddPackage(const G4String& name)
|
||||
{
|
||||
G4PhysListFactory factory;
|
||||
G4VModularPhysicsList* phys =factory.GetReferencePhysList(name);
|
||||
G4int i=0;
|
||||
const G4VPhysicsConstructor* elem= phys->GetPhysics(i);
|
||||
G4VPhysicsConstructor* tmp = const_cast<G4VPhysicsConstructor*> (elem);
|
||||
while (elem !=0)
|
||||
{
|
||||
RegisterPhysics(tmp);
|
||||
elem= phys->GetPhysics(++i) ;
|
||||
tmp = const_cast<G4VPhysicsConstructor*> (elem);
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
void GammaRayTelPhysicsList::ConstructParticle()
|
||||
{
|
||||
decPhysicsList->ConstructParticle();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
void GammaRayTelPhysicsList::ConstructProcess()
|
||||
{
|
||||
// transportation
|
||||
//
|
||||
AddTransportation();
|
||||
|
||||
// electromagnetic physics list
|
||||
//
|
||||
emPhysicsList->ConstructProcess();
|
||||
em_config.AddModels();
|
||||
|
||||
// decay physics list
|
||||
//
|
||||
decPhysicsList->ConstructProcess();
|
||||
|
||||
// hadronic physics lists
|
||||
for(size_t i=0; i<hadronPhys.size(); i++) {
|
||||
hadronPhys[i]->ConstructProcess();
|
||||
}
|
||||
|
||||
// step limitation (as a full process)
|
||||
//
|
||||
// AddStepMax();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
void GammaRayTelPhysicsList::AddPhysicsList(const G4String& name)
|
||||
{
|
||||
|
||||
if (verboseLevel>1) {
|
||||
G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
|
||||
}
|
||||
if (name == emName) return;
|
||||
|
||||
if (name == "Standard EM") {
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// ELECTROMAGNETIC MODELS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
if (name == "standard_opt3") {
|
||||
emName = name;
|
||||
delete emPhysicsList;
|
||||
emPhysicsList = new GammaRayTelEMstdPhysics();
|
||||
G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: EM Standard" << G4endl;
|
||||
|
||||
} else if (name == "LowE EM") {
|
||||
emPhysicsList = new G4EmStandardPhysics_option3();
|
||||
G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmStandardPhysics_option3" << G4endl;
|
||||
|
||||
} else if (name == "LowE_Livermore") {
|
||||
emName = name;
|
||||
delete emPhysicsList;
|
||||
emPhysicsList = new GammaRayTelEMlowePhysics();;
|
||||
G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: EM LowE" << G4endl;
|
||||
}
|
||||
else {
|
||||
emPhysicsList = new G4EmLivermorePhysics();
|
||||
G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmLivermorePhysics" << G4endl;
|
||||
} else if (name == "LowE_Penelope") {
|
||||
emName = name;
|
||||
delete emPhysicsList;
|
||||
emPhysicsList = new G4EmPenelopePhysics();
|
||||
G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmLivermorePhysics" << G4endl;
|
||||
} else if (name == "LowE_Polarized") {
|
||||
emName = name;
|
||||
delete emPhysicsList;
|
||||
emPhysicsList = new G4EmLivermorePolarizedPhysics();
|
||||
G4cout << "THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmLivermorePhysics" << G4endl;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// HADRONIC MODELS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
} else if (name == "elastic" && !helIsRegisted) {
|
||||
G4cout << "THE FOLLOWING HADRONIC ELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4HadronElasticPhysics()" << G4endl;
|
||||
hadronPhys.push_back( new G4HadronElasticPhysics());
|
||||
helIsRegisted = true;
|
||||
|
||||
} else if (name == "DElastic" && !helIsRegisted) {
|
||||
hadronPhys.push_back( new G4HadronDElasticPhysics());
|
||||
helIsRegisted = true;
|
||||
|
||||
} else if (name == "HPElastic" && !helIsRegisted) {
|
||||
hadronPhys.push_back( new G4HadronElasticPhysicsHP());
|
||||
helIsRegisted = true;
|
||||
|
||||
} else if (name == "binary" && !bicIsRegisted) {
|
||||
hadronPhys.push_back(new G4HadronPhysicsQGSP_BIC_HP());
|
||||
bicIsRegisted = true;
|
||||
G4cout << "THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: HadronPhysicsQGSP_BIC_HP()" << G4endl;
|
||||
|
||||
} else if (name == "binary_ion" && !biciIsRegisted) {
|
||||
hadronPhys.push_back(new G4IonBinaryCascadePhysics());
|
||||
biciIsRegisted = true;
|
||||
G4cout << "THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4IonBinaryCascadePhysics()" << G4endl;
|
||||
} else if (name == "radioactive_decay" && !radioactiveDecayIsRegisted ) {
|
||||
hadronPhys.push_back(new G4RadioactiveDecayPhysics());
|
||||
radioactiveDecayIsRegisted = true;
|
||||
G4cout << "THE FOLLOWING HADRONIC INELASTIC PHYSICS LIST HAS BEEN ACTIVATED: G4RadioactiveDecayPhysics()" << G4endl;
|
||||
} else {
|
||||
|
||||
G4cout << "PhysicsList::AddPhysicsList: <" << name << ">"
|
||||
<< " is not defined"
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
|
||||
G4cout << "REGISTRATION DONE " << G4endl;
|
||||
|
||||
RegisterPhysics(emPhysicsList);
|
||||
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
void GammaRayTelPhysicsList::SetCuts()
|
||||
{
|
||||
|
||||
if (verboseLevel >0){
|
||||
G4cout << "PhysicsList::SetCuts:";
|
||||
G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl;
|
||||
}
|
||||
|
||||
G4double lowLimit = 250. * eV;
|
||||
G4double highLimit = 100. * GeV;
|
||||
G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(lowLimit, highLimit);
|
||||
|
||||
// set cut values for gamma at first and for e- second and next for e+,
|
||||
// because some processes for e+/e- need cut values for gamma
|
||||
SetCutValue(cutForGamma, "gamma");
|
||||
SetCutValue(cutForElectron, "e-");
|
||||
SetCutValue(cutForPositron, "e+");
|
||||
|
||||
if (verboseLevel>0) DumpCutValuesTable();
|
||||
}
|
||||
|
||||
void GammaRayTelPhysicsList::SetCutForGamma(G4double cut)
|
||||
{
|
||||
cutForGamma = cut;
|
||||
SetParticleCuts(cutForGamma, G4Gamma::Gamma());
|
||||
}
|
||||
|
||||
void GammaRayTelPhysicsList::SetCutForElectron(G4double cut)
|
||||
{
|
||||
cutForElectron = cut;
|
||||
SetParticleCuts(cutForElectron, G4Electron::Electron());
|
||||
}
|
||||
|
||||
void GammaRayTelPhysicsList::SetCutForPositron(G4double cut)
|
||||
{
|
||||
cutForPositron = cut;
|
||||
SetParticleCuts(cutForPositron, G4Positron::Positron());
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Authors: Susanna Guatelli, susanna@uow.edu.au,
|
||||
// Authors: Jeremy Davis, jad028@uowmail.edu.au
|
||||
//
|
||||
// Code based on the hadrontherapy && radioprotection advanced example
|
||||
|
||||
#include "GammaRayTelPhysicsListMessenger.hh"
|
||||
|
||||
#include "GammaRayTelPhysicsList.hh"
|
||||
@@ -37,41 +42,80 @@ GammaRayTelPhysicsListMessenger::GammaRayTelPhysicsListMessenger(GammaRayTelPhys
|
||||
physDir = new G4UIdirectory("/physics/");
|
||||
physDir->SetGuidance("Commands to activate physics models and set cuts");
|
||||
|
||||
gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/physics/setGCut",this);
|
||||
gammaCutCmd->SetGuidance("Set gamma cut.");
|
||||
gammaCutCmd->SetParameterName("Gcut",false);
|
||||
gammaCutCmd->SetUnitCategory("Length");
|
||||
gammaCutCmd->SetRange("Gcut>0.0");
|
||||
gammaCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
electCutCmd = new G4UIcmdWithADoubleAndUnit("/physics/setECut",this);
|
||||
electCutCmd->SetGuidance("Set electron cut.");
|
||||
electCutCmd->SetParameterName("Ecut",false);
|
||||
electCutCmd->SetUnitCategory("Length");
|
||||
electCutCmd->SetRange("Ecut>0.0");
|
||||
electCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
protoCutCmd = new G4UIcmdWithADoubleAndUnit("/physics/setPCut",this);
|
||||
protoCutCmd->SetGuidance("Set positron cut.");
|
||||
protoCutCmd->SetParameterName("Pcut",false);
|
||||
protoCutCmd->SetUnitCategory("Length");
|
||||
protoCutCmd->SetRange("Pcut>0.0");
|
||||
protoCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
allCutCmd = new G4UIcmdWithADoubleAndUnit("/physics/setCuts",this);
|
||||
allCutCmd->SetGuidance("Set cut for all.");
|
||||
allCutCmd->SetParameterName("cut",false);
|
||||
allCutCmd->SetUnitCategory("Length");
|
||||
allCutCmd->SetRange("cut>0.0");
|
||||
allCutCmd->AvailableForStates(G4State_Idle);
|
||||
allCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
pListCmd = new G4UIcmdWithAString("/physics/addPhysics",this);
|
||||
pListCmd->SetGuidance("Add physics list.");
|
||||
pListCmd->SetParameterName("PList",false);
|
||||
pListCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
packageListCmd = new G4UIcmdWithAString("/physics/addPackage",this);
|
||||
packageListCmd->SetGuidance("Add physics package.");
|
||||
packageListCmd->SetParameterName("package",false);
|
||||
packageListCmd->AvailableForStates(G4State_PreInit);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
GammaRayTelPhysicsListMessenger::~GammaRayTelPhysicsListMessenger()
|
||||
{
|
||||
delete gammaCutCmd;
|
||||
delete electCutCmd;
|
||||
delete protoCutCmd;
|
||||
delete allCutCmd;
|
||||
delete pListCmd;
|
||||
delete physDir;
|
||||
delete packageListCmd;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void GammaRayTelPhysicsListMessenger::SetNewValue(G4UIcommand* command,
|
||||
G4String newValue)
|
||||
{
|
||||
if( command == gammaCutCmd )
|
||||
{ pPhysicsList->SetCutForGamma(gammaCutCmd->GetNewDoubleValue(newValue));}
|
||||
|
||||
if( command == electCutCmd )
|
||||
{ pPhysicsList->SetCutForElectron(electCutCmd->GetNewDoubleValue(newValue));}
|
||||
|
||||
if( command == protoCutCmd )
|
||||
{ pPhysicsList->SetCutForPositron(protoCutCmd->GetNewDoubleValue(newValue));}
|
||||
|
||||
if( command == allCutCmd )
|
||||
{
|
||||
G4double cut = allCutCmd->GetNewDoubleValue(newValue);
|
||||
pPhysicsList->SetRegionCut(cut);
|
||||
pPhysicsList->SetCutForGamma(cut);
|
||||
pPhysicsList->SetCutForElectron(cut);
|
||||
pPhysicsList->SetCutForPositron(cut);
|
||||
}
|
||||
|
||||
if( command == pListCmd )
|
||||
{ pPhysicsList->AddPhysicsList(newValue);}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
if( command == packageListCmd )
|
||||
{ pPhysicsList->AddPackage(newValue);}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: GammaRayTelPrimaryGeneratorAction.cc 82630 2014-07-01 09:43:00Z gcosmo $
|
||||
// $Id: GammaRayTelPrimaryGeneratorAction.cc 100697 2016-10-31 11:32:35Z gcosmo $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
@@ -224,7 +224,7 @@ void GammaRayTelPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
|
||||
G4cout << particleGun->GetParticleDefinition()->GetParticleName() << G4endl;
|
||||
particleGun->GeneratePrimaryVertex(anEvent);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -7,6 +7,18 @@ http://g4advancedexamples.lngs.infn.it/Examples/hadrontherapy
|
||||
====================================================
|
||||
History file of the Hadrontherapy application
|
||||
====================================================
|
||||
|
||||
19.11.2016 A.Dotti Tag: hadrontherapy-V10-02-05
|
||||
- explicit set of SD to manager
|
||||
|
||||
07.11.2016 G.Folger Tag: hadrontherapy-V10-02-04
|
||||
- Remove direct use of theParticleIterator, and use GetParticleIterator() method.
|
||||
03.11.2016 L. Pandola and J. Pipek. Tag: hadrontherapy-V10-02-03
|
||||
- Fixed Bugzilla #1879
|
||||
22.09.2016 GAP Cirrone Tag: hadrontherapy-V10-02-02
|
||||
- Updated and improved the main file
|
||||
- Coorected an overlap in the geometry of the passive beamline
|
||||
- Code cleaning
|
||||
19.05.2016 F. Romano, B. Jia Tag: hadrontherapy-V10-02-00
|
||||
- new modulator class implemented
|
||||
31.10.2015 F. Romano, J. Pipek Tag: hadrontherapy-V10-01-03
|
||||
|
||||
@@ -0,0 +1,247 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// ----------------------------------------------------------------------------
|
||||
// GEANT 4 - Hadrontherapy example
|
||||
// ----------------------------------------------------------------------------
|
||||
//
|
||||
// MAIN AUTHORS
|
||||
// ====================
|
||||
// G.A.P. Cirrone(a)*, F.Romano(a)
|
||||
//
|
||||
// *Corresponding author, email to pablo.cirrone@lns.infn.it
|
||||
//
|
||||
// WEB
|
||||
// ===========
|
||||
// http://www.lns.infn.it/link/Hadrontherapy
|
||||
//
|
||||
//
|
||||
// ==========> PAST CONTRIBUTORS <==========
|
||||
//
|
||||
// R. Calcagno(a), G.Danielsen (b), F.Di Rosa(a),
|
||||
// S.Guatelli(c), A.Heikkinen(b), P.Kaitaniemi(b),
|
||||
// A.Lechner(d), S.E.Mazzaglia(a), M.G.Pia(e),
|
||||
// G.Russo(a), M.Russo(a), A. Tramontana (a),
|
||||
// A.Varisano(a)
|
||||
//
|
||||
// (a) Laboratori Nazionali del Sud of INFN, Catania, Italy
|
||||
// (b) Helsinki Institute of Physics, Helsinki, Finland
|
||||
// (c) University of Wallongong, Australia
|
||||
// (d) CERN, Geneve, Switzwerland
|
||||
// (e) INFN Section of Genova, Genova, Italy
|
||||
// (f) Physics and Astronomy Department, Univ. of Catania, Catania, Italy
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4PhysListFactory.hh"
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "HadrontherapyEventAction.hh"
|
||||
#include "HadrontherapyPhysicsList.hh"
|
||||
#include "HadrontherapyDetectorSD.hh"
|
||||
#include "HadrontherapyPrimaryGeneratorAction.hh"
|
||||
#include "HadrontherapyRunAction.hh"
|
||||
#include "HadrontherapyMatrix.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
#include "G4UImessenger.hh"
|
||||
#include "globals.hh"
|
||||
#include "HadrontherapySteppingAction.hh"
|
||||
#include "HadrontherapyAnalysisManager.hh"
|
||||
#include "HadrontherapyGeometryController.hh"
|
||||
#include "HadrontherapyGeometryMessenger.hh"
|
||||
#include "HadrontherapyInteractionParameters.hh"
|
||||
#include "HadrontherapyLet.hh"
|
||||
|
||||
#include "G4ScoringManager.hh"
|
||||
#include "G4ParallelWorldPhysics.hh"
|
||||
#include <time.h>
|
||||
|
||||
//************************MT*********************
|
||||
#ifdef G4MULTITHREADED
|
||||
#include "G4MTRunManager.hh"
|
||||
#else
|
||||
#include "G4RunManager.hh"
|
||||
#endif
|
||||
|
||||
#include "HadrontherapyActionInitialization.hh"
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
#include "G4VisExecutive.hh"
|
||||
#endif
|
||||
|
||||
#ifdef G4UI_USE
|
||||
#include "G4UIExecutive.hh"
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||
int main(int argc ,char ** argv)
|
||||
{
|
||||
// Set the Random engine
|
||||
CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine());
|
||||
|
||||
// Only if an initial random seed is needed
|
||||
//G4int seed =1414159599;// time(0);
|
||||
//CLHEP::HepRandom::setTheSeed(seed);
|
||||
// G4cout << "******************************************************************"<< seed << G4endl;
|
||||
|
||||
//************************MT*********************
|
||||
#ifdef G4MULTITHREADED
|
||||
|
||||
G4MTRunManager* runManager = new G4MTRunManager;
|
||||
//runManager->SetNumberOfThreads(2); // Is equal to 2 by default, it can be setted also with the macro command: /run/numberOfThread 2
|
||||
#else
|
||||
G4RunManager* runManager = new G4RunManager;
|
||||
#endif
|
||||
|
||||
|
||||
// Geometry controller is responsible for instantiating the
|
||||
// geometries. All geometry specific setup tasks are now in class
|
||||
// HadrontherapyGeometryController.
|
||||
HadrontherapyGeometryController *geometryController = new HadrontherapyGeometryController();
|
||||
|
||||
// Connect the geometry controller to the G4 user interface
|
||||
HadrontherapyGeometryMessenger *geometryMessenger = new HadrontherapyGeometryMessenger(geometryController);
|
||||
|
||||
G4ScoringManager *scoringManager = G4ScoringManager::GetScoringManager();
|
||||
scoringManager->SetVerboseLevel(1);
|
||||
|
||||
|
||||
// Initialize the default Hadrontherapy geometry
|
||||
geometryController->SetGeometry("default");
|
||||
|
||||
// Initialize command based scoring
|
||||
G4ScoringManager::GetScoringManager();
|
||||
|
||||
// Initialize the physics
|
||||
G4PhysListFactory factory;
|
||||
G4VModularPhysicsList* phys = 0;
|
||||
G4String physName = "";
|
||||
|
||||
// Physics List name defined via environment variable
|
||||
char* path = getenv("PHYSLIST");
|
||||
if (path) { physName = G4String(path); }
|
||||
|
||||
if(physName != "" && factory.IsReferencePhysList(physName))
|
||||
{
|
||||
phys = factory.GetReferencePhysList(physName);
|
||||
}
|
||||
if (phys)
|
||||
{
|
||||
G4cout << "Going to register G4ParallelWorldPhysics" << G4endl;
|
||||
phys->RegisterPhysics(new G4ParallelWorldPhysics("DetectorROGeometry"));
|
||||
}
|
||||
else
|
||||
{
|
||||
G4cout << "Using HadrontherapyPhysicsList()" << G4endl;
|
||||
phys = new HadrontherapyPhysicsList();
|
||||
}
|
||||
|
||||
runManager->SetUserInitialization(phys);
|
||||
|
||||
//************************MT
|
||||
runManager->SetUserInitialization(new HadrontherapyActionInitialization);
|
||||
|
||||
|
||||
|
||||
// Interaction data: stopping powers
|
||||
HadrontherapyInteractionParameters* pInteraction = new HadrontherapyInteractionParameters(true);
|
||||
|
||||
// Initialize analysis
|
||||
HadrontherapyAnalysisManager* analysis = HadrontherapyAnalysisManager::GetInstance();
|
||||
|
||||
#ifdef G4ANALYSIS_USE_ROOT
|
||||
analysis -> book();
|
||||
#endif
|
||||
|
||||
// Get the pointer to the visualization manager
|
||||
#ifdef G4VIS_USE
|
||||
G4VisManager* visManager = new G4VisExecutive;
|
||||
visManager -> Initialize();
|
||||
#endif
|
||||
|
||||
// Get the pointer to the User Interface manager
|
||||
G4UImanager* UImanager = G4UImanager::GetUIpointer();
|
||||
|
||||
if (argc == 1) // Define UI session for interactive mode.
|
||||
{
|
||||
#ifdef G4UI_USE
|
||||
G4UIExecutive* ui = new G4UIExecutive(argc, argv);
|
||||
G4cout << " UI session starts ..." << G4endl;
|
||||
UImanager -> ApplyCommand("/control/execute macro/defaultMacro.mac");
|
||||
ui -> SessionStart();
|
||||
delete ui;
|
||||
#endif
|
||||
}
|
||||
else // Batch mode
|
||||
{
|
||||
G4String command = "/control/execute ";
|
||||
G4String fileName = argv[1];
|
||||
UImanager -> ApplyCommand(command+fileName);
|
||||
}
|
||||
|
||||
// Job termination
|
||||
// Store dose & fluence data to ASCII & ROOT files
|
||||
if ( HadrontherapyMatrix * pMatrix = HadrontherapyMatrix::GetInstance() )
|
||||
{
|
||||
pMatrix -> TotalEnergyDeposit();
|
||||
pMatrix -> StoreDoseFluenceAscii();
|
||||
#ifdef G4ANALYSIS_USE_ROOT
|
||||
|
||||
pMatrix -> StoreDoseFluenceRoot();
|
||||
#endif
|
||||
}
|
||||
|
||||
if (HadrontherapyLet *let = HadrontherapyLet::GetInstance())
|
||||
if(let -> doCalculation)
|
||||
{
|
||||
let -> LetOutput(); // Calculate let
|
||||
let -> StoreLetAscii(); // Store it
|
||||
#ifdef G4ANALYSIS_USE_ROOT
|
||||
|
||||
let -> StoreLetRoot();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#ifdef G4ANALYSIS_USE_ROOT
|
||||
if (analysis -> IsTheTFile()) analysis -> flush(); // Finalize & write the root file
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
delete visManager;
|
||||
#endif
|
||||
|
||||
delete geometryMessenger;
|
||||
delete geometryController;
|
||||
delete pInteraction;
|
||||
delete runManager;
|
||||
delete analysis;
|
||||
return 0;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,623 @@
|
||||
|
||||
############################################
|
||||
!!! WARNING - FPE detection is activated !!!
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-10-03 (9-December-2016)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
*************************************************************
|
||||
|
||||
Activating geometry default
|
||||
Going to register Parallel world...... done
|
||||
Using HadrontherapyPhysicsList()
|
||||
Visualization Manager instantiating with verbosity "warnings (3)"...
|
||||
Visualization Manager initialising...
|
||||
Registering graphics systems...
|
||||
|
||||
You have successfully registered the following graphics systems.
|
||||
Current available graphics systems are:
|
||||
ASCIITree (ATree)
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRep (HepRepXML)
|
||||
G4HepRepFile (HepRepFile)
|
||||
RayTracer (RayTracer)
|
||||
VRML1FILE (VRML1FILE)
|
||||
VRML2FILE (VRML2FILE)
|
||||
gMocrenFile (gMocrenFile)
|
||||
OpenGLImmediateQt (OGLIQt, OGLI)
|
||||
OpenGLStoredQt (OGLSQt, OGL, OGLS)
|
||||
OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK)
|
||||
OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK)
|
||||
OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK)
|
||||
OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK)
|
||||
RayTracerX (RayTracerX)
|
||||
|
||||
Registering model factories...
|
||||
|
||||
You have successfully registered the following model factories.
|
||||
Registered model factories:
|
||||
generic
|
||||
drawByAttribute
|
||||
drawByCharge
|
||||
drawByOriginVolume
|
||||
drawByParticleID
|
||||
drawByEncounteredVolume
|
||||
|
||||
Registered filter factories:
|
||||
attributeFilter
|
||||
chargeFilter
|
||||
originVolumeFilter
|
||||
particleFilter
|
||||
encounteredVolumeFilter
|
||||
|
||||
You have successfully registered the following user vis actions.
|
||||
Run Duration User Vis Actions: none
|
||||
End of Event User Vis Actions: none
|
||||
End of Run User Vis Actions: none
|
||||
|
||||
Some /vis commands (optionally) take a string to specify colour.
|
||||
Available colours:
|
||||
black, blue, brown, cyan, gray, green, grey, magenta, red, white, yellow
|
||||
|
||||
/tracking/verbose 0
|
||||
/run/verbose 1
|
||||
/event/verbose 0
|
||||
/Physics/addPhysics standard_opt4
|
||||
THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmStandardPhysics_option4
|
||||
/run/initialize
|
||||
Checking overlaps for volume BrassTube2 ... OK!
|
||||
/run/geometryModified
|
||||
HadrontherapyMatrix: Memory space to store physical dose into 200 voxels has been allocated
|
||||
/run/geometryModified
|
||||
The (X,Y,Z) dimensions of the phantom are : (40 cm ,40 cm ,40 cm )
|
||||
The (X,Y,Z) dimensions of the detector are : (4 cm ,4 cm ,4 cm )
|
||||
Displacement between Phantom and World is: DX= 20 cm DY= 0 fm DZ= 0 fm
|
||||
The (X,Y,Z) sizes of the Voxels are: (200 um ,4 cm ,4 cm )
|
||||
The number of Voxels along (X,Y,Z) is: (200,1,1)
|
||||
G4PhysicsListHelper::AddTransportation()--- G4CoupledTransportation is used
|
||||
### G4EmConfigurator::AddModels n= 0
|
||||
PhysicsList::SetCuts:CutLength : 1 mm
|
||||
/gps/pos/shape Circle
|
||||
/gps/pos/centre -310. 0. 0. cm
|
||||
/gps/pos/radius 0. mm
|
||||
/gps/pos/sigma_r 2. mm
|
||||
/gps/particle proton
|
||||
/gps/pos/type Beam
|
||||
/gps/pos/rot1 0 1 0
|
||||
/gps/pos/rot2 0 0 1
|
||||
/gps/ang/rot1 0 0 1
|
||||
/gps/ang/rot2 0 1 0
|
||||
/gps/ang/type beam1d
|
||||
/gps/ang/sigma_r 0. deg
|
||||
/gps/ene/type Gauss
|
||||
/gps/ene/mono 62 MeV
|
||||
/gps/ene/sigma 0.3 MeV
|
||||
/Step/waterPhantomStepMax 1 mm
|
||||
/changePhantom/size 40 40 40 cm
|
||||
/changePhantom/position 20 0 0 cm
|
||||
/changeDetector/size 4 4 4 cm
|
||||
/changeDetector/voxelSize 1 40 40 mm
|
||||
/changeDetector/displacement 0 18 18 cm
|
||||
/changePhantom/update
|
||||
HadrontherapyMatrix: Memory space to store physical dose into 40 voxels has been allocated
|
||||
/run/geometryModified
|
||||
The (X,Y,Z) dimensions of the phantom are : (40 cm ,40 cm ,40 cm )
|
||||
The (X,Y,Z) dimensions of the detector are : (4 cm ,4 cm ,4 cm )
|
||||
Displacement between Phantom and World is: DX= 20 cm DY= 0 fm DZ= 0 fm
|
||||
The (X,Y,Z) sizes of the Voxels are: (1 mm ,4 cm ,4 cm )
|
||||
The number of Voxels along (X,Y,Z) is: (40,1,1)
|
||||
/event/printEventNumber 100
|
||||
/run/beamOn 500
|
||||
|
||||
### === Deexcitation model UAtomDeexcitation is activated for 2 regions:
|
||||
DefaultRegionForTheWorld 1 1 0
|
||||
DetectorLog 1 1 0
|
||||
### === Auger cascade flag: 1
|
||||
### === Ignore cuts flag: 1
|
||||
|
||||
phot: for gamma SubType= 12 BuildTable= 0
|
||||
LambdaPrime table from 200 keV to 10 TeV in 154 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermorePhElectric : Emin= 0 eV Emax= 10 TeV AngularGenSauterGavrila FluoActive
|
||||
|
||||
compt: for gamma SubType= 13 BuildTable= 1
|
||||
Lambda table from 100 eV to 1 MeV, 20 bins per decade, spline: 1
|
||||
LambdaPrime table from 1 MeV to 10 TeV in 140 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LowEPComptonModel : Emin= 0 eV Emax= 20 MeV FluoActive
|
||||
KleinNishina : Emin= 20 MeV Emax= 10 TeV FluoActive
|
||||
|
||||
conv: for gamma SubType= 14 BuildTable= 1
|
||||
Lambda table from 1.022 MeV to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PenConversion : Emin= 0 eV Emax= 80 GeV
|
||||
BetheHeitlerLPM : Emin= 80 GeV Emax= 10 TeV
|
||||
|
||||
Rayl: for gamma SubType= 11 BuildTable= 1
|
||||
Lambda table from 100 eV to 100 keV, 20 bins per decade, spline: 0
|
||||
LambdaPrime table from 100 keV to 10 TeV in 160 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermoreRayleigh : Emin= 0 eV Emax= 10 TeV CullenGenerator
|
||||
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.02, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 120 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 100 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PenIoni : Emin= 0 eV Emax= 1 MeV
|
||||
MollerBhabha : Emin= 1 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
eBrem: for e- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS
|
||||
|
||||
ePairProd: for e- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 21x1001 from 0.1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for e-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from 100 MeV to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.02, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 120 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 100 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PenIoni : Emin= 0 eV Emax= 1 MeV
|
||||
MollerBhabha : Emin= 1 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
eBrem: for e+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS
|
||||
|
||||
ePairProd: for e+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 21x1001 from 0.1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
annihil: for e+, integral: 1 SubType= 5 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eplus2gg : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for e+, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from 100 MeV to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
msc: for proton SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for proton SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
hBrems: for proton SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for proton, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of anti_proton
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
nuclearStopping: for proton SubType= 8 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.001, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ParamICRU73 : Emin= 0 eV Emax= 10 TeV deltaVI
|
||||
|
||||
nuclearStopping: for GenericIon SubType= 8 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BraggIon : Emin= 0 eV Emax= 7.9452 MeV deltaVI
|
||||
BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
nuclearStopping: for alpha SubType= 8 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for anti_proton SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for anti_proton SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
hBrems: for anti_proton SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for anti_proton, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
nuclearStopping: for anti_proton SubType= 8 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for kaon+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for kaon+ SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 1.05231 MeV deltaVI
|
||||
BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
hBrems: for kaon+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for kaon+, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for kaon- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for kaon- SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 1.05231 MeV deltaVI
|
||||
BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
hBrems: for kaon- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for kaon-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of kaon+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
muIoni: for mu+ SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 10 TeV
|
||||
|
||||
muBrems: for mu+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for mu+, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
muIoni: for mu- SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 10 TeV
|
||||
|
||||
muBrems: for mu- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of mu+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for pi+ SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 297.505 keV deltaVI
|
||||
BetheBloch : Emin= 297.505 keV Emax= 10 TeV deltaVI
|
||||
|
||||
hBrems: for pi+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for pi+, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for pi- SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 297.505 keV deltaVI
|
||||
BetheBloch : Emin= 297.505 keV Emax= 10 TeV deltaVI
|
||||
|
||||
hBrems: for pi- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of pi+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
========= Table of registered couples ==============================
|
||||
|
||||
Index : 0 used in the geometry : Yes
|
||||
Material : G4_AIR
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 1 used in the geometry : Yes
|
||||
Material : G4_Al
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 6.90363 keV e- 598.345 keV e+ 570.85 keV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 2 used in the geometry : Yes
|
||||
Material : G4_Galactic
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 3 used in the geometry : Yes
|
||||
Material : G4_Ta
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 101.501 keV e- 2.01928 MeV e+ 1.88805 MeV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 4 used in the geometry : Yes
|
||||
Material : G4_KAPTON
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 2.98035 keV e- 419.056 keV e+ 405.209 keV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 5 used in the geometry : Yes
|
||||
Material : Brass
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 24.2568 keV e- 1.32231 MeV e+ 1.24471 MeV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 6 used in the geometry : Yes
|
||||
Material : G4_PLEXIGLASS
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 2.78665 keV e- 389.196 keV e+ 376.336 keV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 7 used in the geometry : Yes
|
||||
Material : G4_Cu
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 24.7508 keV e- 1.39534 MeV e+ 1.31345 MeV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 8 used in the geometry : Yes
|
||||
Material : G4_MYLAR
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 3.02067 keV e- 419.056 keV e+ 405.209 keV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 9 used in the geometry : Yes
|
||||
Material : G4_WATER
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 2.94056 keV e- 351.877 keV e+ 342.545 keV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 10 used in the geometry : Yes
|
||||
Material : G4_WATER
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 2.94056 keV e- 351.877 keV e+ 342.545 keV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DetectorLog
|
||||
|
||||
====================================================================
|
||||
|
||||
### Run 0 starts.
|
||||
Run 0 starts ...
|
||||
|
||||
---> Begin of Event: 0
|
||||
|
||||
---> Begin of Event: 100
|
||||
|
||||
---> Begin of Event: 200
|
||||
|
||||
---> Begin of Event: 300
|
||||
|
||||
---> Begin of Event: 400
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 500
|
||||
User=7.9s Real=7.96s Sys=0.04s
|
||||
Dose is being written to Dose.out
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
G4 kernel has come to Quit state.
|
||||
================== Deleting memory pools ===================
|
||||
Number of memory pools allocated: 12 of which, static: 0
|
||||
Dynamic pools deleted: 12 / Total memory freed: 0.38 MB
|
||||
============================================================
|
||||
RunManagerKernel is deleted. Good bye :)
|
||||
@@ -18,7 +18,7 @@
|
||||
##########################
|
||||
# Set of the physic models
|
||||
#
|
||||
/Physics/addPhysics QGSP_BIC_EMY
|
||||
/Physics/addPhysics HADRONTHERAPY_1
|
||||
|
||||
|
||||
##########################
|
||||
@@ -39,7 +39,7 @@
|
||||
# Visualisation
|
||||
#
|
||||
/vis/scene/create
|
||||
/vis/open OGL
|
||||
/vis/open OGLI
|
||||
#/vis/viewer/set/background white
|
||||
/vis/viewer/flush
|
||||
/vis/viewer/set/viewpointThetaPhi 30 140 deg
|
||||
@@ -72,7 +72,7 @@
|
||||
|
||||
#---------------------------gps-----------------
|
||||
/gps/pos/shape Circle
|
||||
/gps/pos/centre -187. 0. 0. cm
|
||||
/gps/pos/centre -10. 0. 0. cm
|
||||
/gps/pos/radius 0. mm
|
||||
/gps/pos/sigma_r 2. mm
|
||||
/gps/particle ion
|
||||
@@ -97,7 +97,7 @@
|
||||
# the beam energy is in gaussian profile
|
||||
#
|
||||
/gps/ene/type Gauss
|
||||
/gps/ene/mono 744 MeV
|
||||
/gps/ene/mono 3240 MeV
|
||||
/gps/ene/sigma 0.744 MeV
|
||||
|
||||
|
||||
@@ -106,12 +106,12 @@
|
||||
/changePhantom/size 40 40 40 cm
|
||||
/changePhantom/position 20 0 0 cm
|
||||
|
||||
/changeDetector/size 4 4 4 cm
|
||||
/changeDetector/voxelSize .1 40 40 mm
|
||||
/changeDetector/size 20 20 20 cm
|
||||
/changeDetector/voxelSize .2 20 20 cm
|
||||
|
||||
|
||||
# Put the detector in the lower left corner of the phantom
|
||||
/changeDetector/displacement 0 18 18 cm
|
||||
/changeDetector/displacement 0 8 8 cm
|
||||
/changePhantom/update
|
||||
|
||||
#########################
|
||||
@@ -129,6 +129,6 @@
|
||||
#
|
||||
#########################
|
||||
|
||||
/run/beamOn 4
|
||||
/run/beamOn 2000
|
||||
|
||||
|
||||
|
||||
@@ -26,16 +26,25 @@
|
||||
##########################
|
||||
# Visualisation
|
||||
#
|
||||
/vis/open OGL 600x600-0+0
|
||||
|
||||
/vis/scene/create
|
||||
/vis/open OGLI
|
||||
/vis/viewer/flush
|
||||
# Disable auto refresh and quieten vis messages whilst scene and
|
||||
# trajectories are established:
|
||||
/vis/viewer/set/autoRefresh false
|
||||
/vis/verbose errors
|
||||
|
||||
/vis/drawVolume
|
||||
/vis/viewer/set/viewpointThetaPhi 30 140 deg
|
||||
/vis/viewer/zoom 1
|
||||
/vis/viewer/pan -10 0 cm
|
||||
/vis/scene/add/trajectories
|
||||
/vis/scene/add/trajectories smooth
|
||||
|
||||
/vis/scene/endOfEventAction accumulate
|
||||
|
||||
/vis/viewer/set/autoRefresh true
|
||||
/vis/verbose warnings
|
||||
|
||||
|
||||
####################################################
|
||||
# Set here the CUT and the STEP MAX for the tracking.
|
||||
# Suggested values of cut and step
|
||||
@@ -55,7 +64,6 @@
|
||||
# energy and position along the X direction
|
||||
#
|
||||
|
||||
|
||||
#---------------------------gps-----------------
|
||||
/gps/pos/shape Circle
|
||||
/gps/pos/centre -310. 0. 0. cm
|
||||
@@ -80,7 +88,7 @@
|
||||
# the beam energy is in gaussian profile
|
||||
#
|
||||
/gps/ene/type Gauss
|
||||
/gps/ene/mono 62 MeV
|
||||
/gps/ene/mono 63.5 MeV
|
||||
/gps/ene/sigma 0.3 MeV
|
||||
|
||||
|
||||
@@ -101,7 +109,7 @@
|
||||
###################################################
|
||||
#
|
||||
/changeDetector/size 4 4 4 cm
|
||||
/changeDetector/voxelSize .4 40 40 mm
|
||||
/changeDetector/voxelSize .1 40 40 mm
|
||||
|
||||
# Put the detector in the lower left corner of the phantom
|
||||
#
|
||||
@@ -124,7 +132,9 @@
|
||||
# Default material is water liquid
|
||||
#/changePhantom/material G4_PLEXIGLASS
|
||||
|
||||
/run/beamOn 10
|
||||
/run/printProgress 10
|
||||
|
||||
/run/beamOn 1
|
||||
|
||||
/control/shell mkdir -p SimulationOutputs/proton/BraggPeak
|
||||
/control/shell mv DoseDistribution.root SimulationOutputs/proton/BraggPeak/protonBraggPeak.root
|
||||
|
||||
@@ -324,7 +324,7 @@ void HadrontherapyDetectorROGeometry::ConstructSD()
|
||||
G4String sensitiveDetectorName = "RODetector";
|
||||
|
||||
HadrontherapyDetectorSD* detectorSD = new HadrontherapyDetectorSD(sensitiveDetectorName);
|
||||
|
||||
G4SDManager::GetSDMpointer()->AddNewDetector(detectorSD);
|
||||
SetSensitiveDetector(sensitiveLogicalVolume,detectorSD);
|
||||
|
||||
|
||||
|
||||
@@ -40,8 +40,8 @@ HadrontherapyElectricTabulatedField3D::HadrontherapyElectricTabulatedField3D( co
|
||||
G4double ElenUnit= cm;
|
||||
G4double EfieldUnit= volt/m;
|
||||
G4cout << "\n-----------------------------------------------------------"
|
||||
<< "\n Electric field"
|
||||
<< "\n-----------------------------------------------------------";
|
||||
<< "\n Electric field"
|
||||
<< "\n-----------------------------------------------------------";
|
||||
|
||||
G4cout << "\n ---> " "Reading the field grid from " << filename << " ... " << endl;
|
||||
G4AutoLock lock(&MyHadrontherapyLockEField);
|
||||
@@ -143,9 +143,9 @@ void HadrontherapyElectricTabulatedField3D::GetFieldValue(const G4double Epoint[
|
||||
G4double z1 = Epoint[2] + feZoffset;
|
||||
|
||||
// Check that the point is within the defined region
|
||||
if ( x1>=Eminx && x1<Emaxx &&
|
||||
y1>=Eminy && y1<Emaxy &&
|
||||
z1>=Eminz && z1<Emaxz ) {
|
||||
if ( x1>Eminx && x1<Emaxx &&
|
||||
y1>Eminy && y1<Emaxy &&
|
||||
z1>Eminz && z1<Emaxz ) {
|
||||
|
||||
// Position of given point within region, normalized to the range
|
||||
// [0,1]
|
||||
@@ -169,9 +169,9 @@ void HadrontherapyElectricTabulatedField3D::GetFieldValue(const G4double Epoint[
|
||||
|
||||
// The indices of the nearest tabulated point whose coordinates
|
||||
// are all less than those of the given point
|
||||
G4int exindex = static_cast<G4int>(exdindex);
|
||||
G4int eyindex = static_cast<G4int>(eydindex);
|
||||
G4int ezindex = static_cast<G4int>(ezdindex);
|
||||
G4int exindex = static_cast<G4int>(std::floor(exdindex));
|
||||
G4int eyindex = static_cast<G4int>(std::floor(eydindex));
|
||||
G4int ezindex = static_cast<G4int>(std::floor(ezdindex));
|
||||
|
||||
/*
|
||||
#ifdef DEBUG_G4intERPOLATING_FIELD
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
HadrontherapyEventAction::HadrontherapyEventAction() :
|
||||
drawFlag("all" ),printModulo(1000), pointerEventMessenger(0)
|
||||
drawFlag("all" ),printModulo(10), pointerEventMessenger(0)
|
||||
{
|
||||
hitsCollectionID = -1;
|
||||
pointerEventMessenger = new HadrontherapyEventActionMessenger(this);
|
||||
@@ -53,13 +53,12 @@ HadrontherapyEventAction::HadrontherapyEventAction() :
|
||||
HadrontherapyEventAction::~HadrontherapyEventAction()
|
||||
{
|
||||
delete pointerEventMessenger;
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
void HadrontherapyEventAction::BeginOfEventAction(const G4Event* evt)
|
||||
{
|
||||
G4int evtNb = evt->GetEventID();
|
||||
|
||||
//printing survey
|
||||
if (evtNb%printModulo == 0)
|
||||
G4cout << "\n---> Begin of Event: " << evtNb << G4endl;
|
||||
|
||||
@@ -142,9 +142,9 @@ void HadrontherapyMagneticField3D::GetFieldValue(const double point[4],
|
||||
double z = point[2];
|
||||
|
||||
// Check that the point is within the defined region
|
||||
if ( x>=minx && x<maxx &&
|
||||
y>=miny && y<maxy &&
|
||||
z>=minz && z<maxz ) {
|
||||
if ( x>minx && x<maxx &&
|
||||
y>miny && y<maxy &&
|
||||
z>minz && z<maxz ) {
|
||||
// Position of given point within region, normalized to the range
|
||||
// [0,1]
|
||||
double xfraction = (x - minx) / dx;
|
||||
@@ -167,9 +167,9 @@ void HadrontherapyMagneticField3D::GetFieldValue(const double point[4],
|
||||
|
||||
// The indices of the nearest tabulated point whose coordinates
|
||||
// are all less than those of the given point
|
||||
int xindex = static_cast<int>(xdindex);
|
||||
int yindex = static_cast<int>(ydindex);
|
||||
int zindex = static_cast<int>(zdindex);
|
||||
int xindex = static_cast<int>(std::floor(xdindex));
|
||||
int yindex = static_cast<int>(std::floor(ydindex));
|
||||
int zindex = static_cast<int>(std::floor(zdindex));
|
||||
|
||||
|
||||
#ifdef DEBUG_INTERPOLATING_FIELD
|
||||
|
||||
@@ -469,12 +469,12 @@ for (G4int i=1;i<StepNumbers;i++)
|
||||
G4VisAttributes * red = new G4VisAttributes( G4Colour(1. ,0. ,0.));
|
||||
red-> SetVisibility(true);
|
||||
red-> SetForceSolid(true);
|
||||
logicMotherMod -> SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicMotherMod -> SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
|
||||
logicMod1 ->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicMod2 ->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicMod3 ->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicMod4 ->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicMod1 ->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
logicMod2 ->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
logicMod3 ->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
logicMod4 ->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
|
||||
for (G4int i=1;i<StepNumbers;i++)
|
||||
{
|
||||
|
||||
@@ -280,9 +280,10 @@ void HadrontherapyPhysicsList::AddStepMax()
|
||||
HadrontherapyStepMax* stepMaxProcess = new HadrontherapyStepMax();
|
||||
G4AutoDelete::Register( stepMaxProcess );
|
||||
|
||||
theParticleIterator->reset();
|
||||
while ((*theParticleIterator)()){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
auto particleIterator=GetParticleIterator();
|
||||
particleIterator->reset();
|
||||
while ((*particleIterator)()){
|
||||
G4ParticleDefinition* particle = particleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
|
||||
if (stepMaxProcess->IsApplicable(*particle) && pmanager)
|
||||
|
||||
@@ -727,7 +727,7 @@ void LaserDrivenBeamLine::ConstructLaserDrivenBeamLine()
|
||||
|
||||
|
||||
// The treatment room is invisible in the Visualisation
|
||||
logicTreatmentRoom -> SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicTreatmentRoom -> SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
|
||||
// The various components of the energyselector are constructed calling
|
||||
// the following methods
|
||||
@@ -1049,7 +1049,7 @@ G4double VirtualLateralPosX=GuardRingPosX+GuardRingThickness/2+1*cm+(FaradayCupB
|
||||
logicVirtualWindow,
|
||||
physicVirtualMag,
|
||||
true,0);
|
||||
logicVirtualWindow->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicVirtualWindow->SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
|
||||
///// GuardRing /////
|
||||
|
||||
@@ -1094,7 +1094,7 @@ G4double VirtualLateralPosX=GuardRingPosX+GuardRingThickness/2+1*cm+(FaradayCupB
|
||||
physicVirtualMag,
|
||||
true,0);
|
||||
|
||||
logicVirtualMiddle->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicVirtualMiddle->SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
|
||||
///// FaradayCupBottom /////
|
||||
|
||||
@@ -1135,7 +1135,7 @@ G4double VirtualLateralPosX=GuardRingPosX+GuardRingThickness/2+1*cm+(FaradayCupB
|
||||
physicVirtualMag,
|
||||
true,0);
|
||||
|
||||
logicVirtualBottom->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicVirtualBottom->SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
|
||||
///// Cup /////
|
||||
|
||||
@@ -1177,7 +1177,7 @@ G4double VirtualLateralPosX=GuardRingPosX+GuardRingThickness/2+1*cm+(FaradayCupB
|
||||
|
||||
physicVirtualMag,
|
||||
true,0);
|
||||
logicVirtualOverBottom->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicVirtualOverBottom->SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
|
||||
|
||||
///// Virtual Lateral /////
|
||||
@@ -1202,7 +1202,7 @@ logicVirtualLateral=new G4LogicalVolume( VirtualLateral,
|
||||
|
||||
|
||||
|
||||
logicVirtualLateral->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicVirtualLateral->SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -349,7 +349,7 @@ void PassiveCarbonBeamLine::ConstructPassiveCarbonBeamLine()
|
||||
|
||||
|
||||
// The treatment room is invisible in the Visualisation
|
||||
logicTreatmentRoom -> SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicTreatmentRoom -> SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
|
||||
// Components of the Passive Carbon Beam Line
|
||||
HadrontherapyBeamLineSupport();
|
||||
|
||||
@@ -571,7 +571,7 @@ void PassiveProtonBeamLine::ConstructPassiveProtonBeamLine()
|
||||
|
||||
|
||||
// The treatment room is invisible in the Visualisation
|
||||
logicTreatmentRoom -> SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicTreatmentRoom -> SetVisAttributes (G4VisAttributes::GetInvisible());
|
||||
|
||||
// Components of the Passive Proton Beam Line
|
||||
HadrontherapyBeamLineSupport();
|
||||
@@ -1370,6 +1370,7 @@ void PassiveProtonBeamLine::HadrontherapyBeamNozzle()
|
||||
|
||||
logicHoleNozzleSupport -> SetVisAttributes(darkOrange3);
|
||||
|
||||
|
||||
// ---------------------------------//
|
||||
// BRASS TUBE 1 (phantom side) //
|
||||
// ---------------------------------//
|
||||
@@ -1404,6 +1405,7 @@ void PassiveProtonBeamLine::HadrontherapyBeamNozzle()
|
||||
0);
|
||||
|
||||
logicBrassTube -> SetVisAttributes(darkOrange3);
|
||||
|
||||
|
||||
// ----------------------------------------------//
|
||||
// BRASS TUBE 2 (inside the PMMA support) //
|
||||
@@ -1427,20 +1429,21 @@ void PassiveProtonBeamLine::HadrontherapyBeamNozzle()
|
||||
brassTube2Material,
|
||||
"BrassTube2",
|
||||
0, 0, 0);
|
||||
|
||||
physiBrassTube2 = new G4PVPlacement(G4Transform3D(rm,
|
||||
G4ThreeVector(0,
|
||||
0.,
|
||||
0.)),
|
||||
"BrassTube2",
|
||||
logicBrassTube2,
|
||||
physiNozzleSupport,
|
||||
false,
|
||||
0);
|
||||
G4bool checkOverlaps = true;
|
||||
|
||||
new G4PVPlacement(0,
|
||||
G4ThreeVector(),
|
||||
logicBrassTube2,
|
||||
"BrassTube2",
|
||||
logicHoleNozzleSupport,
|
||||
false,
|
||||
0,
|
||||
checkOverlaps);
|
||||
|
||||
logicBrassTube2 -> SetVisAttributes(darkOrange3);
|
||||
|
||||
|
||||
|
||||
// --------------------------------------//
|
||||
// BRASS TUBE 3 (beam line side) //
|
||||
// -------------------------------------//
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 97053 2016-05-23 12:03:28Z gcosmo $
|
||||
$Id: History 101654 2016-11-21 08:52:03Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -18,6 +18,9 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
Nov 19, 2016, A. Dotti tag human_phantom-V10-02-02
|
||||
- explicit set of SD to manager
|
||||
|
||||
May 23, 2016, G. Cosmo tag human_phantom-V10-02-01
|
||||
- More compilation warnings in gcc-6.1 fixed...
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-10-03-beta-01 (30-June-2016)
|
||||
Geant4 version Name: geant4-10-03 (9-December-2016)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
@@ -41,14 +41,14 @@ Registered model factories:
|
||||
drawByCharge
|
||||
drawByOriginVolume
|
||||
drawByParticleID
|
||||
drawByTouchedVolume
|
||||
drawByEncounteredVolume
|
||||
|
||||
Registered filter factories:
|
||||
attributeFilter
|
||||
chargeFilter
|
||||
originVolumeFilter
|
||||
particleFilter
|
||||
touchedVolumeFilter
|
||||
encounteredVolumeFilter
|
||||
|
||||
You have successfully registered the following user vis actions.
|
||||
Run Duration User Vis Actions: none
|
||||
@@ -82,10 +82,10 @@ MotherVolume: physicalWorld
|
||||
sensitivity : 0
|
||||
Construct Head with mother physicalWorld
|
||||
Checking overlaps for volume physicalHead ... OK!
|
||||
Volume of Head = 4657.41 cm^3
|
||||
Volume of Head = 4657.81 cm^3
|
||||
Material of Head = soft_tissue
|
||||
Density of Material = 0.9869 g/cm^3
|
||||
Mass of Head = 4596.39 g
|
||||
Mass of Head = 4596.79 g
|
||||
MotherVolume: physicalHead
|
||||
sensitivity : 0
|
||||
Construct Skull with mother volume physicalHead
|
||||
@@ -106,10 +106,10 @@ sensitivity : 0
|
||||
Construct Trunk with mother volume physicalWorld
|
||||
Checking overlaps for volume physicalTrunk ... OK!
|
||||
Trunk created !!!!!!
|
||||
Volume of Trunk = 43976.3 cm^3
|
||||
Volume of Trunk = 43978.7 cm^3
|
||||
Material of Trunk = soft_tissue
|
||||
Density of Material = 0.9869 g/cm^3
|
||||
Mass of Trunk = 43400.2 g
|
||||
Mass of Trunk = 43402.6 g
|
||||
MotherVolume: physicalWorld
|
||||
sensitivity : 0
|
||||
Construct LeftLeg with mother volume physicalWorld
|
||||
@@ -133,19 +133,19 @@ sensitivity : 0
|
||||
Construct LeftArmBone with mother physicalTrunk
|
||||
Checking overlaps for volume physicalLeftArmBone ... OK!
|
||||
LeftArmBone created !!!!!!
|
||||
Volume of LeftArmBone = 819.272 cm^3
|
||||
Volume of LeftArmBone = 819.252 cm^3
|
||||
Material of LeftArmBone = skeleton
|
||||
Density of Material = 1.4862 g/cm^3
|
||||
Mass of LeftArmBone = 1217.6 g
|
||||
Mass of LeftArmBone = 1217.57 g
|
||||
MotherVolume: physicalTrunk
|
||||
sensitivity : 0
|
||||
Construct RightArmBone with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalRightArmBone ... OK!
|
||||
RightArmBone created !!!!!!
|
||||
Volume of RightArmBone = 819.635 cm^3
|
||||
Volume of RightArmBone = 819.744 cm^3
|
||||
Material of RightArmBone = skeleton
|
||||
Density of Material = 1.4862 g/cm^3
|
||||
Mass of RightArmBone = 1218.14 g
|
||||
Mass of RightArmBone = 1218.3 g
|
||||
MotherVolume: physicalLeftLeg
|
||||
sensitivity : 0
|
||||
Construct LeftLegBone with mother volume physicalLeftLeg
|
||||
@@ -169,28 +169,28 @@ sensitivity : 0
|
||||
Construct UpperSpine with mother volume physicalHead
|
||||
Checking overlaps for volume physicalUpperSpine ... OK!
|
||||
UpperSpine created !!!!!!
|
||||
Volume of UpperSpine = 126.458 cm^3
|
||||
Volume of UpperSpine = 126.468 cm^3
|
||||
Material of UpperSpine = skeleton
|
||||
Density of Material = 1.4862 g/cm^3
|
||||
Mass of UpperSpine = 187.942 g
|
||||
Mass of UpperSpine = 187.957 g
|
||||
MotherVolume: physicalTrunk
|
||||
sensitivity : 0
|
||||
Construct LeftScapula with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalLeftScapula ... OK!
|
||||
LeftScapula created !!!!!!
|
||||
Volume of LeftScapula = 100.812 cm^3
|
||||
Volume of LeftScapula = 100.858 cm^3
|
||||
Material of LeftScapula = skeleton
|
||||
Density of Material = 1.4862 g/cm^3
|
||||
Mass of LeftScapula = 149.826 g
|
||||
Mass of LeftScapula = 149.896 g
|
||||
MotherVolume: physicalTrunk
|
||||
sensitivity : 0
|
||||
Construct RightScapula with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalRightScapula ... OK!
|
||||
RightScapula created !!!!!!
|
||||
Volume of RightScapula = 103.388 cm^3
|
||||
Volume of RightScapula = 103.399 cm^3
|
||||
Material of RightScapula = skeleton
|
||||
Density of Material = 1.4862 g/cm^3
|
||||
Mass of RightScapula = 153.656 g
|
||||
Mass of RightScapula = 153.672 g
|
||||
Construct LeftAdrenal with mother physicalTrunk
|
||||
Checking overlaps for volume physicalLeftAdrenal ... OK!
|
||||
Left LeftAdrenal created !!!!!!
|
||||
@@ -233,10 +233,10 @@ Mass of RightClavicle = 20.3099 g
|
||||
Construct SmallIntestine with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalSmallIntestine ... OK!
|
||||
SmallIntestine created !!!!!!
|
||||
Volume of SmallIntestine = 1019.35 cm^3
|
||||
Volume of SmallIntestine = 1020.24 cm^3
|
||||
Material of SmallIntestine = soft_tissue
|
||||
Density of Material = 0.9869 g/cm^3
|
||||
Mass of SmallIntestine = 1006 g
|
||||
Mass of SmallIntestine = 1006.87 g
|
||||
Construct RibCage with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalRibCage ... OK!
|
||||
Checking overlaps for volume physicalRib ... OK!
|
||||
@@ -252,26 +252,26 @@ Checking overlaps for volume physicalRib ... OK!
|
||||
Checking overlaps for volume physicalRib ... OK!
|
||||
Checking overlaps for volume physicalRib ... OK!
|
||||
RibCage created !!!!!!
|
||||
Volume of RibCage = 693.348 cm^3
|
||||
Volume of RibCage = 693.461 cm^3
|
||||
Material of RibCage = skeleton
|
||||
Density of Material = 1.4862 g/cm^3
|
||||
Mass of RibCage = 1030.45 g
|
||||
Mass of RibCage = 1030.62 g
|
||||
MotherVolume: physicalTrunk
|
||||
sensitivity : 0
|
||||
Construct MiddleLowerSpine with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalMiddleLowerSpine ... OK!
|
||||
MiddleLowerSpine created !!!!!!
|
||||
Volume of MiddleLowerSpine = 753.626 cm^3
|
||||
Volume of MiddleLowerSpine = 753.971 cm^3
|
||||
Material of MiddleLowerSpine = skeleton
|
||||
Density of Material = 1.4862 g/cm^3
|
||||
Mass of MiddleLowerSpine = 1120.04 g
|
||||
Mass of MiddleLowerSpine = 1120.55 g
|
||||
Construct Pelvis with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalPelvis ... OK!
|
||||
Pelvis created !!!!!!
|
||||
Volume of Pelvis = 608.584 cm^3
|
||||
Volume of Pelvis = 608.745 cm^3
|
||||
Material of Pelvis = skeleton
|
||||
Density of Material = 1.4862 g/cm^3
|
||||
Mass of Pelvis = 904.478 g
|
||||
Mass of Pelvis = 904.717 g
|
||||
Construct Stomach with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalStomach ... OK!
|
||||
Stomach created !!!!!!
|
||||
@@ -282,17 +282,17 @@ Mass of Stomach = 396.856 g
|
||||
Construct UpperLargeIntestine with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalUpperLargeIntestine ... OK!
|
||||
UpperLargeIntestine created !!!!!!
|
||||
Volume of UpperLargeIntestine = 433.802 cm^3
|
||||
Volume of UpperLargeIntestine = 433.819 cm^3
|
||||
Material of UpperLargeIntestine = soft_tissue
|
||||
Density of Material = 0.9869 g/cm^3
|
||||
Mass of UpperLargeIntestine = 428.119 g
|
||||
Mass of UpperLargeIntestine = 428.136 g
|
||||
Construct LowerLargeIntestine with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalLowerLargeIntestine ... OK!
|
||||
LowerLargeIntestine created !!!!!!
|
||||
Volume of LowerLargeIntestine = 344.258 cm^3
|
||||
Volume of LowerLargeIntestine = 344.493 cm^3
|
||||
Material of LowerLargeIntestine = soft_tissue
|
||||
Density of Material = 0.9869 g/cm^3
|
||||
Mass of LowerLargeIntestine = 339.748 g
|
||||
Mass of LowerLargeIntestine = 339.98 g
|
||||
Construct Spleen with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalSpleen ... OK!
|
||||
Spleen created !!!!!!
|
||||
@@ -303,40 +303,40 @@ Mass of Spleen = 173.625 g
|
||||
Construct Pancreas with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalPancreas ... OK!
|
||||
Pancreas created !!!!!!
|
||||
Volume of Pancreas = 60.9478 cm^3
|
||||
Volume of Pancreas = 60.9318 cm^3
|
||||
Material of Pancreas = soft_tissue
|
||||
Density of Material = 0.9869 g/cm^3
|
||||
Mass of Pancreas = 60.1494 g
|
||||
Mass of Pancreas = 60.1336 g
|
||||
Construct LeftKidney with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalLeftKidney ... OK!
|
||||
Left LeftKidney created !!!!!!
|
||||
Volume of LeftKidney = 143.922 cm^3
|
||||
Volume of LeftKidney = 143.977 cm^3
|
||||
Material of LeftKidney = soft_tissue
|
||||
Density of Material = 0.9869 g/cm^3
|
||||
Mass of LeftKidney = 142.037 g
|
||||
Mass of LeftKidney = 142.091 g
|
||||
Construct RightKidney with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalRightKidney ... OK!
|
||||
RightKidney created !!!!!!
|
||||
Volume of RightKidney = 144.181 cm^3
|
||||
Volume of RightKidney = 144.185 cm^3
|
||||
Material of RightKidney = soft_tissue
|
||||
Density of Material = 0.9869 g/cm^3
|
||||
Mass of RightKidney = 142.293 g
|
||||
Mass of RightKidney = 142.297 g
|
||||
Construct UrinaryBladder with mother volume physicalTrunk
|
||||
Checking overlaps for volume physicalUrinaryBladder ... OK!
|
||||
UrinaryBladder created !!!!!!
|
||||
Volume of UrinaryBladder = 45.7506 cm^3
|
||||
Volume of UrinaryBladder = 45.7701 cm^3
|
||||
Material of UrinaryBladder = soft_tissue
|
||||
Density of Material = 0.9869 g/cm^3
|
||||
Mass of UrinaryBladder = 45.1513 g
|
||||
Mass of UrinaryBladder = 45.1705 g
|
||||
MotherVolume: physicalWorld
|
||||
sensitivity : 0
|
||||
Construct MaleGenitalia with mother volume physicalWorld
|
||||
Checking overlaps for volume physicalMaleGenitalia ... OK!
|
||||
MaleGenitalia created !!!!!!
|
||||
Volume of MaleGenitalia = 229.499 cm^3
|
||||
Volume of MaleGenitalia = 229.503 cm^3
|
||||
Material of MaleGenitalia = soft_tissue
|
||||
Density of Material = 0.9869 g/cm^3
|
||||
Mass of MaleGenitalia = 226.493 g
|
||||
Mass of MaleGenitalia = 226.496 g
|
||||
MotherVolume: physicalWorld
|
||||
sensitivity : 0
|
||||
Construct LeftTeste with mother volume physicalMaleGenitalia
|
||||
@@ -427,7 +427,7 @@ eIoni: for e- SubType= 2
|
||||
eBrem: for e- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS
|
||||
@@ -462,7 +462,7 @@ eIoni: for e+ SubType= 2
|
||||
eBrem: for e+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS
|
||||
@@ -485,7 +485,7 @@ CoulombScat: for e+, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
msc: for proton SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -538,7 +538,7 @@ nuclearStopping: for GenericIon SubType= 8 BuildTable= 0
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -555,7 +555,7 @@ nuclearStopping: for alpha SubType= 8 BuildTable= 0
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for anti_proton SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -592,7 +592,7 @@ nuclearStopping: for anti_proton SubType= 8 BuildTable= 0
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for kaon+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -625,7 +625,7 @@ CoulombScat: for kaon+, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for kaon- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -658,7 +658,7 @@ CoulombScat: for kaon-, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -692,7 +692,7 @@ CoulombScat: for mu+, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -726,7 +726,7 @@ CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -759,7 +759,7 @@ CoulombScat: for pi+, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -819,47 +819,47 @@ Index : 2 used in the geometry : Yes
|
||||
### Run 0 start.
|
||||
Number of events = 100
|
||||
Energy Total in Run:logicalBrain, ID: 0, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalHead, ID: 1, Energy Deposition (MeV): 2.16829
|
||||
Energy Total in Run:logicalHead, ID: 1, Energy Deposition (MeV): 2.4465
|
||||
Energy Total in Run:logicalHeart, ID: 2, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalLeftAdrenal, ID: 3, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalLeftArmBone, ID: 4, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalLeftBreast, ID: 5, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalLeftClavicle, ID: 6, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalLeftKidney, ID: 7, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalLeftLeg, ID: 8, Energy Deposition (MeV): 11.3888
|
||||
Energy Total in Run:logicalLeftLeg, ID: 8, Energy Deposition (MeV): 10.3807
|
||||
Energy Total in Run:logicalLeftLegBone, ID: 9, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalLeftLung, ID: 10, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalLeftOvary, ID: 11, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalLeftScapula, ID: 12, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalLeftTeste, ID: 13, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalLowerLargeIntestine, ID: 14, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalMaleGenitalia, ID: 15, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalMaleGenitalia, ID: 15, Energy Deposition (MeV): 3.06759
|
||||
Energy Total in Run:logicalMiddleLowerSpine, ID: 16, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalPancreas, ID: 17, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalPelvis, ID: 18, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalRibCage, ID: 19, Energy Deposition (MeV): 0.286366
|
||||
Energy Total in Run:logicalRibCage, ID: 19, Energy Deposition (MeV): 1.11094
|
||||
Energy Total in Run:logicalRightAdrenal, ID: 20, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalRightArmBone, ID: 21, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalRightBreast, ID: 22, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalRightClavicle, ID: 23, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalRightKidney, ID: 24, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalRightLeg, ID: 25, Energy Deposition (MeV): 10.3309
|
||||
Energy Total in Run:logicalRightLeg, ID: 25, Energy Deposition (MeV): 12.7482
|
||||
Energy Total in Run:logicalRightLegBone, ID: 26, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalRightLung, ID: 27, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalRightOvary, ID: 28, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalRightScapula, ID: 29, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalRightTeste, ID: 30, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalSkull, ID: 31, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalSkull, ID: 31, Energy Deposition (MeV): 0.408342
|
||||
Energy Total in Run:logicalSmallIntestine, ID: 32, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalSpleen, ID: 33, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalStomach, ID: 34, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalThymus, ID: 35, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalThyroid, ID: 36, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalTrunk, ID: 37, Energy Deposition (MeV): 27.8108
|
||||
Energy Total in Run:logicalTrunk, ID: 37, Energy Deposition (MeV): 22.5338
|
||||
Energy Total in Run:logicalUpperLargeIntestine, ID: 38, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalUpperSpine, ID: 39, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalUrinaryBladder, ID: 40, Energy Deposition (MeV): 0
|
||||
Energy Total in Run:logicalUterus, ID: 41, Energy Deposition (MeV): 0
|
||||
Total Energy deposit in the body is: 51.9853 MeV
|
||||
Total Energy deposit in the body is: 52.6961 MeV
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user