Import Geant4 10.3.0.beta source tree
This commit is contained in:
@@ -62,6 +62,7 @@ endif()
|
||||
set(EXAMPLEhadrontherapy_SCRIPTS
|
||||
clean.sh
|
||||
batch.mac
|
||||
ModoulWeight.txt
|
||||
macro/GUIPersonalisation.mac
|
||||
macro/carbon_beamline.mac
|
||||
macro/detectorGeometry.mac
|
||||
|
||||
@@ -7,6 +7,8 @@ http://g4advancedexamples.lngs.infn.it/Examples/hadrontherapy
|
||||
====================================================
|
||||
History file of the Hadrontherapy application
|
||||
====================================================
|
||||
19.05.2016 F. Romano, B. Jia Tag: hadrontherapy-V10-02-00
|
||||
- new modulator class implemented
|
||||
31.10.2015 F. Romano, J. Pipek Tag: hadrontherapy-V10-01-03
|
||||
- general revisiion and commetns fixed
|
||||
21.01.2015 J. Apostolakis Tag: hadrontherapy-V10-01-02
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
NumberOfStep 22
|
||||
# Thickness Relative_Weight
|
||||
Step1 0 .14445
|
||||
Stept2 .8 .05665
|
||||
Step3 1.6 .05049
|
||||
Step4 2.4 .04239
|
||||
Step5 3.2 .04313
|
||||
Step6 4.0 .03879
|
||||
Step7 4.8 .04182
|
||||
Step8 5.6 .03422
|
||||
Step9 6.4 .03469
|
||||
Step10 7.2 .03589
|
||||
Step11 8.0 .03633
|
||||
Step12 8.8 .03842
|
||||
Step13 9.6 .03688
|
||||
Step14 10.4 .03705
|
||||
Step15 11.2 .03773
|
||||
Step16 12.0 .03968
|
||||
Step17 12.8 .04058
|
||||
Step18 13.6 .03903
|
||||
Step19 14.4 .04370
|
||||
Step20 15.2 .03981
|
||||
Step21 16.0 .05226
|
||||
Step22 16.8 .03603
|
||||
@@ -1,603 +0,0 @@
|
||||
|
||||
############################################
|
||||
!!! WARNING - FPE detection is activated !!!
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-10-02-ref-00 (4-December-2015)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
*************************************************************
|
||||
|
||||
Activating geometry default
|
||||
Going to register Parallel world...... done
|
||||
Using HadrontherapyPhysicsList()
|
||||
Visualization Manager instantiating with verbosity "warnings (3)"...
|
||||
Visualization Manager initialising...
|
||||
Registering graphics systems...
|
||||
|
||||
You have successfully registered the following graphics systems.
|
||||
Current available graphics systems are:
|
||||
ASCIITree (ATree)
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRep (HepRepXML)
|
||||
G4HepRepFile (HepRepFile)
|
||||
RayTracer (RayTracer)
|
||||
VRML1FILE (VRML1FILE)
|
||||
VRML2FILE (VRML2FILE)
|
||||
gMocrenFile (gMocrenFile)
|
||||
OpenGLImmediateQt (OGLIQt, OGLI)
|
||||
OpenGLStoredQt (OGLSQt, OGL, OGLS)
|
||||
OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK)
|
||||
OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK)
|
||||
OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK)
|
||||
OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK)
|
||||
RayTracerX (RayTracerX)
|
||||
|
||||
Registering model factories...
|
||||
|
||||
You have successfully registered the following model factories.
|
||||
Registered model factories:
|
||||
generic
|
||||
drawByCharge
|
||||
drawByParticleID
|
||||
drawByOriginVolume
|
||||
drawByAttribute
|
||||
|
||||
Registered filter factories:
|
||||
chargeFilter
|
||||
particleFilter
|
||||
originVolumeFilter
|
||||
attributeFilter
|
||||
|
||||
You have successfully registered the following user vis actions.
|
||||
Run Duration User Vis Actions: none
|
||||
End of Event User Vis Actions: none
|
||||
End of Run User Vis Actions: none
|
||||
|
||||
Some /vis commands (optionally) take a string to specify colour.
|
||||
Available colours:
|
||||
black, blue, brown, cyan, gray, green, grey, magenta, red, white, yellow
|
||||
|
||||
/tracking/verbose 0
|
||||
/run/verbose 1
|
||||
/event/verbose 0
|
||||
/Physics/addPhysics standard_opt4
|
||||
THE FOLLOWING ELECTROMAGNETIC PHYSICS LIST HAS BEEN ACTIVATED: G4EmStandardPhysics_option4
|
||||
/run/initialize
|
||||
HadrontherapyMatrix: Memory space to store physical dose into 200 voxels has been allocated
|
||||
/run/geometryModified
|
||||
The (X,Y,Z) dimensions of the phantom are : (40 cm ,40 cm ,40 cm )
|
||||
The (X,Y,Z) dimensions of the detector are : (4 cm ,4 cm ,4 cm )
|
||||
Displacement between Phantom and World is: DX= 20 cm DY= 0 fm DZ= 0 fm
|
||||
The (X,Y,Z) sizes of the Voxels are: (200 um ,4 cm ,4 cm )
|
||||
The number of Voxels along (X,Y,Z) is: (200,1,1)
|
||||
G4PhysicsListHelper::AddTransportation()--- G4CoupledTransportation is used
|
||||
### G4EmConfigurator::AddModels n= 0
|
||||
PhysicsList::SetCuts:CutLength : 1 mm
|
||||
/gps/pos/shape Circle
|
||||
/gps/pos/centre -310. 0. 0. cm
|
||||
/gps/pos/radius 0. mm
|
||||
/gps/pos/sigma_r 2. mm
|
||||
/gps/particle proton
|
||||
/gps/pos/type Beam
|
||||
/gps/pos/rot1 0 1 0
|
||||
/gps/pos/rot2 0 0 1
|
||||
/gps/ang/rot1 0 0 1
|
||||
/gps/ang/rot2 0 1 0
|
||||
/gps/ang/type beam1d
|
||||
/gps/ang/sigma_r 0. deg
|
||||
/gps/ene/type Gauss
|
||||
/gps/ene/mono 62 MeV
|
||||
/gps/ene/sigma 0.3 MeV
|
||||
/Step/waterPhantomStepMax 1 mm
|
||||
/changePhantom/size 40 40 40 cm
|
||||
/changePhantom/position 20 0 0 cm
|
||||
/changeDetector/size 4 4 4 cm
|
||||
/changeDetector/voxelSize 1 40 40 mm
|
||||
/changeDetector/displacement 0 18 18 cm
|
||||
/changePhantom/update
|
||||
HadrontherapyMatrix: Memory space to store physical dose into 40 voxels has been allocated
|
||||
/run/geometryModified
|
||||
The (X,Y,Z) dimensions of the phantom are : (40 cm ,40 cm ,40 cm )
|
||||
The (X,Y,Z) dimensions of the detector are : (4 cm ,4 cm ,4 cm )
|
||||
Displacement between Phantom and World is: DX= 20 cm DY= 0 fm DZ= 0 fm
|
||||
The (X,Y,Z) sizes of the Voxels are: (1 mm ,4 cm ,4 cm )
|
||||
The number of Voxels along (X,Y,Z) is: (40,1,1)
|
||||
/event/printEventNumber 100
|
||||
/run/beamOn 500
|
||||
|
||||
### === Deexcitation model UAtomDeexcitation is activated for 2 regions:
|
||||
DefaultRegionForTheWorld
|
||||
DetectorLog
|
||||
|
||||
phot: for gamma SubType= 12 BuildTable= 0
|
||||
LambdaPrime table from 200 keV to 10 TeV in 154 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermorePhElectric : Emin= 0 eV Emax= 10 TeV AngularGenSauterGavrila FluoActive
|
||||
|
||||
compt: for gamma SubType= 13 BuildTable= 1
|
||||
Lambda table from 100 eV to 1 MeV, 20 bins per decade, spline: 1
|
||||
LambdaPrime table from 1 MeV to 10 TeV in 140 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LowEPComptonModel : Emin= 0 eV Emax= 20 MeV FluoActive
|
||||
KleinNishina : Emin= 20 MeV Emax= 10 TeV FluoActive
|
||||
|
||||
conv: for gamma SubType= 14 BuildTable= 1
|
||||
Lambda table from 1.022 MeV to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PenConversion : Emin= 0 eV Emax= 80 GeV
|
||||
BetheHeitlerLPM : Emin= 80 GeV Emax= 10 TeV
|
||||
|
||||
Rayl: for gamma SubType= 11 BuildTable= 1
|
||||
Lambda table from 100 eV to 100 keV, 20 bins per decade, spline: 0
|
||||
LambdaPrime table from 100 keV to 10 TeV in 160 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermoreRayleigh : Emin= 0 eV Emax= 10 TeV CullenGenerator
|
||||
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.02, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 120 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 100 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PenIoni : Emin= 0 eV Emax= 1 MeV
|
||||
MollerBhabha : Emin= 1 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
eBrem: for e- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS
|
||||
|
||||
CoulombScat: for e-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from 100 MeV to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.02, stepLimitType: 3, latDisplacement: 1, skin= 1, geomFactor= 2.5
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 120 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 100 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PenIoni : Emin= 0 eV Emax= 1 MeV
|
||||
MollerBhabha : Emin= 1 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
eBrem: for e+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGen2BS
|
||||
|
||||
annihil: for e+, integral: 1 SubType= 5 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eplus2gg : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for e+, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from 100 MeV to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
msc: for proton SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for proton SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
hBrems: for proton SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for proton, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of anti_proton
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
nuclearStopping: for proton SubType= 8 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.001, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ParamICRU73 : Emin= 0 eV Emax= 10 TeV deltaVI
|
||||
|
||||
nuclearStopping: for GenericIon SubType= 8 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BraggIon : Emin= 0 eV Emax= 7.9452 MeV deltaVI
|
||||
BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
nuclearStopping: for alpha SubType= 8 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for anti_proton SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for anti_proton SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
hBrems: for anti_proton SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for anti_proton, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
nuclearStopping: for anti_proton SubType= 8 BuildTable= 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
|
||||
msc: for kaon+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for kaon+ SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 1.05231 MeV deltaVI
|
||||
BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
hBrems: for kaon+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for kaon+, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for kaon- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for kaon- SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 1.05231 MeV deltaVI
|
||||
BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV deltaVI
|
||||
|
||||
hBrems: for kaon- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for kaon-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of kaon+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
muIoni: for mu+ SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 10 TeV
|
||||
|
||||
muBrems: for mu+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for mu+, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
muIoni: for mu- SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 10 TeV
|
||||
|
||||
muBrems: for mu- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of mu+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for pi+ SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 297.505 keV deltaVI
|
||||
BetheBloch : Emin= 297.505 keV Emax= 10 TeV deltaVI
|
||||
|
||||
hBrems: for pi+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for pi+, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 220 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
hIoni: for pi- SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 297.505 keV deltaVI
|
||||
BetheBloch : Emin= 297.505 keV Emax= 10 TeV deltaVI
|
||||
|
||||
hBrems: for pi- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 220 bins
|
||||
Lambda tables from threshold to 10 TeV, 20 bins per decade, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of pi+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
========= Table of registered couples ==============================
|
||||
|
||||
Index : 0 used in the geometry : Yes
|
||||
Material : G4_AIR
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 1 used in the geometry : Yes
|
||||
Material : G4_Al
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 6.90363 keV e- 598.345 keV e+ 570.85 keV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 2 used in the geometry : Yes
|
||||
Material : G4_Galactic
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 3 used in the geometry : Yes
|
||||
Material : G4_Ta
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 101.501 keV e- 2.01928 MeV e+ 1.88805 MeV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 4 used in the geometry : Yes
|
||||
Material : G4_KAPTON
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 2.98035 keV e- 419.056 keV e+ 405.209 keV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 5 used in the geometry : Yes
|
||||
Material : Brass
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 24.2568 keV e- 1.32231 MeV e+ 1.24471 MeV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 6 used in the geometry : Yes
|
||||
Material : G4_PLEXIGLASS
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 2.78665 keV e- 389.196 keV e+ 376.336 keV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 7 used in the geometry : Yes
|
||||
Material : G4_Cu
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 24.7508 keV e- 1.39534 MeV e+ 1.31345 MeV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 8 used in the geometry : Yes
|
||||
Material : G4_MYLAR
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 3.02067 keV e- 419.056 keV e+ 405.209 keV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 9 used in the geometry : Yes
|
||||
Material : G4_WATER
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 2.94056 keV e- 351.877 keV e+ 342.545 keV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 10 used in the geometry : Yes
|
||||
Material : G4_WATER
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
|
||||
Energy thresholds : gamma 2.94056 keV e- 351.877 keV e+ 342.545 keV proton 100 keV
|
||||
Region(s) which use this couple :
|
||||
DetectorLog
|
||||
|
||||
====================================================================
|
||||
|
||||
### Run 0 starts.
|
||||
Run 0 starts ...
|
||||
|
||||
---> Begin of Event: 0
|
||||
|
||||
---> Begin of Event: 100
|
||||
|
||||
---> Begin of Event: 200
|
||||
|
||||
---> Begin of Event: 300
|
||||
|
||||
---> Begin of Event: 400
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 500
|
||||
User=5.49s Real=5.55s Sys=0.04s
|
||||
Dose is being written to Dose.out
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
G4 kernel has come to Quit state.
|
||||
================== Deleting memory pools ===================
|
||||
Number of memory pools allocated: 12 of which, static: 0
|
||||
Dynamic pools deleted: 12 / Total memory freed: 0.6 MB
|
||||
============================================================
|
||||
RunManagerKernel is deleted. Good bye :)
|
||||
@@ -23,12 +23,26 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// Hadrontherapy advanced example for Geant4
|
||||
// See more at: https://twiki.cern.ch/twiki/bin/view/Geant4/AdvancedExamplesHadrontherapy
|
||||
// This is the *BASIC* version of Hadrontherapy, a Geant4-based application
|
||||
// See more at: http://g4advancedexamples.lngs.infn.it/Examples/hadrontherapy
|
||||
//
|
||||
// Visit the Hadrontherapy web site (http://www.lns.infn.it/link/Hadrontherapy) to request
|
||||
// the *COMPLETE* version of this program, together with its documentation;
|
||||
// Hadrontherapy (both basic and full version) are supported by the Italian INFN
|
||||
// Institute in the framework of the MC-INFN Group
|
||||
//
|
||||
|
||||
#ifndef HadrontherapyModulator_H
|
||||
#define HadrontherapyModulator_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include <fstream>
|
||||
#include "G4Material.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4RotationMatrix.hh"
|
||||
#include "HadrontherapyModulatorMessenger.hh"
|
||||
|
||||
// using namespace std;
|
||||
class G4Tubs;
|
||||
class G4LogicalVolume;
|
||||
class G4VPhysicalVolume;
|
||||
@@ -43,19 +57,27 @@ public:
|
||||
|
||||
void BuildModulator(G4VPhysicalVolume*);
|
||||
void SetModulatorAngle(G4double);
|
||||
void SetModulatorMaterial(G4String);
|
||||
void SetModulatorPosition(G4ThreeVector);
|
||||
void SetModulatorInnerRadius(G4double);
|
||||
void SetModulatorOuterRadius(G4double);
|
||||
void ModulatorDefaultProperties();
|
||||
void ModulatorPropertiesFromFile(G4String);
|
||||
void GetDataFromFile(G4String value);
|
||||
void GetStepInformation();
|
||||
void BuildSteps();
|
||||
|
||||
private:
|
||||
std::ifstream File;
|
||||
|
||||
G4LogicalVolume * logicMotherMod ;
|
||||
G4VPhysicalVolume* physiMotherMod;
|
||||
|
||||
G4Material* Mod0Mater;
|
||||
G4Material* ModMater;
|
||||
|
||||
G4RotationMatrix* rm;
|
||||
G4VPhysicalVolume* physiMotherMod;
|
||||
|
||||
G4Tubs* solidMod0;
|
||||
G4LogicalVolume* logicMod0;
|
||||
G4VPhysicalVolume* physiMod0;
|
||||
|
||||
|
||||
G4Tubs* solidMod1;
|
||||
G4LogicalVolume* logicMod1;
|
||||
G4Tubs* solidMod1;
|
||||
G4LogicalVolume* logicMod1;
|
||||
G4VPhysicalVolume* physiMod1;
|
||||
|
||||
G4Tubs* solidMod2;
|
||||
@@ -69,291 +91,26 @@ private:
|
||||
G4Tubs* solidMod4;
|
||||
G4LogicalVolume* logicMod4;
|
||||
G4VPhysicalVolume* physiMod4;
|
||||
|
||||
G4double pi;
|
||||
G4int StepNumbers;
|
||||
G4double* Weight;
|
||||
G4double* StepThickness;
|
||||
G4double* StartingAngle;
|
||||
G4double* SpanningAngle;
|
||||
G4ThreeVector* PositionMod;
|
||||
G4Tubs** solidMod;
|
||||
G4LogicalVolume** logicMod;
|
||||
G4VPhysicalVolume** physiMod;
|
||||
|
||||
G4Tubs* solidMod5;
|
||||
G4LogicalVolume* logicMod5;
|
||||
G4VPhysicalVolume* physiMod5;
|
||||
G4RotationMatrix* rm;
|
||||
|
||||
G4Tubs* solidMod6;
|
||||
G4LogicalVolume* logicMod6;
|
||||
G4VPhysicalVolume* physiMod6;
|
||||
|
||||
G4Tubs* solidMod7;
|
||||
G4LogicalVolume* logicMod7;
|
||||
G4VPhysicalVolume* physiMod7;
|
||||
|
||||
G4Tubs* solidMod8;
|
||||
G4LogicalVolume* logicMod8;
|
||||
G4VPhysicalVolume* physiMod8;
|
||||
|
||||
G4Tubs* solidMod9;
|
||||
G4LogicalVolume* logicMod9;
|
||||
G4VPhysicalVolume* physiMod9;
|
||||
|
||||
G4Tubs* solidMod10;
|
||||
G4LogicalVolume* logicMod10;
|
||||
G4VPhysicalVolume* physiMod10;
|
||||
|
||||
G4Tubs* solidMod11;
|
||||
G4LogicalVolume* logicMod11;
|
||||
G4VPhysicalVolume* physiMod11;
|
||||
|
||||
G4Tubs* solidMod12;
|
||||
G4LogicalVolume* logicMod12;
|
||||
G4VPhysicalVolume* physiMod12;
|
||||
|
||||
G4Tubs* solidMod13;
|
||||
G4LogicalVolume* logicMod13;
|
||||
G4VPhysicalVolume* physiMod13;
|
||||
|
||||
G4Tubs* solidMod14;
|
||||
G4LogicalVolume* logicMod14;
|
||||
G4VPhysicalVolume* physiMod14;
|
||||
|
||||
G4Tubs* solidMod15;
|
||||
G4LogicalVolume* logicMod15;
|
||||
G4VPhysicalVolume* physiMod15;
|
||||
|
||||
G4Tubs* solidMod16;
|
||||
G4LogicalVolume* logicMod16;
|
||||
G4VPhysicalVolume* physiMod16;
|
||||
|
||||
G4Tubs* solidMod17;
|
||||
G4LogicalVolume* logicMod17;
|
||||
G4VPhysicalVolume* physiMod17;
|
||||
|
||||
G4Tubs* solidMod18;
|
||||
G4LogicalVolume* logicMod18;
|
||||
G4VPhysicalVolume* physiMod18;
|
||||
|
||||
G4Tubs* solidMod20;
|
||||
G4LogicalVolume* logicMod20;
|
||||
G4VPhysicalVolume* physiMod20;
|
||||
G4String FileName;
|
||||
HadrontherapyModulatorMessenger* ModulatorMessenger;
|
||||
G4double innerRadiusOfTheTube ;
|
||||
G4double outerRadiusOfTheTube ;
|
||||
|
||||
|
||||
G4Tubs* solidMod21;
|
||||
G4LogicalVolume* logicMod21;
|
||||
G4VPhysicalVolume* physiMod21;
|
||||
|
||||
G4Tubs* solidMod22;
|
||||
G4LogicalVolume* logicMod22;
|
||||
G4VPhysicalVolume* physiMod22;
|
||||
|
||||
G4Tubs* solidMod23;
|
||||
G4LogicalVolume* logicMod23;
|
||||
G4VPhysicalVolume* physiMod23;
|
||||
|
||||
G4Tubs* solidMod24;
|
||||
G4LogicalVolume* logicMod24;
|
||||
G4VPhysicalVolume* physiMod24;
|
||||
|
||||
G4Tubs* solidMod25;
|
||||
G4LogicalVolume* logicMod25;
|
||||
G4VPhysicalVolume* physiMod25;
|
||||
|
||||
G4Tubs* solidMod26;
|
||||
G4LogicalVolume* logicMod26;
|
||||
G4VPhysicalVolume* physiMod26;
|
||||
|
||||
G4Tubs* solidMod27;
|
||||
G4LogicalVolume* logicMod27;
|
||||
G4VPhysicalVolume* physiMod27;
|
||||
|
||||
G4Tubs* solidMod28;
|
||||
G4LogicalVolume* logicMod28;
|
||||
G4VPhysicalVolume* physiMod28;
|
||||
|
||||
G4Tubs* solidMod29;
|
||||
G4LogicalVolume* logicMod29;
|
||||
G4VPhysicalVolume* physiMod29;
|
||||
|
||||
G4Tubs* solidMod30;
|
||||
G4LogicalVolume* logicMod30;
|
||||
G4VPhysicalVolume* physiMod30;
|
||||
|
||||
G4Tubs* solidMod31;
|
||||
G4LogicalVolume* logicMod31;
|
||||
G4VPhysicalVolume* physiMod31;
|
||||
|
||||
G4Tubs* solidMod32;
|
||||
G4LogicalVolume* logicMod32;
|
||||
G4VPhysicalVolume* physiMod32;
|
||||
|
||||
G4Tubs* solidMod33;
|
||||
G4LogicalVolume* logicMod33;
|
||||
G4VPhysicalVolume* physiMod33;
|
||||
|
||||
G4Tubs* solidMod34;
|
||||
G4LogicalVolume* logicMod34;
|
||||
G4VPhysicalVolume* physiMod34;
|
||||
|
||||
G4Tubs* solidMod35;
|
||||
G4LogicalVolume* logicMod35;
|
||||
G4VPhysicalVolume* physiMod35;
|
||||
|
||||
G4Tubs* solidMod36;
|
||||
G4LogicalVolume* logicMod36;
|
||||
G4VPhysicalVolume* physiMod36;
|
||||
|
||||
G4Tubs* solidMod37;
|
||||
G4LogicalVolume* logicMod37;
|
||||
G4VPhysicalVolume* physiMod37;
|
||||
|
||||
G4Tubs* solidMod38;
|
||||
G4LogicalVolume* logicMod38;
|
||||
G4VPhysicalVolume* physiMod38;
|
||||
|
||||
|
||||
G4Tubs* solidMod40; // pointer to the
|
||||
G4LogicalVolume* logicMod40;
|
||||
G4VPhysicalVolume* physiMod40;
|
||||
|
||||
G4Tubs* solidMod41;
|
||||
G4LogicalVolume* logicMod41;
|
||||
G4VPhysicalVolume* physiMod41;
|
||||
|
||||
G4Tubs* solidMod42;
|
||||
G4LogicalVolume* logicMod42;
|
||||
G4VPhysicalVolume* physiMod42;
|
||||
|
||||
G4Tubs* solidMod43;
|
||||
G4LogicalVolume* logicMod43;
|
||||
G4VPhysicalVolume* physiMod43;
|
||||
|
||||
G4Tubs* solidMod44;
|
||||
G4LogicalVolume* logicMod44;
|
||||
G4VPhysicalVolume* physiMod44;
|
||||
|
||||
G4Tubs* solidMod45;
|
||||
G4LogicalVolume* logicMod45;
|
||||
G4VPhysicalVolume* physiMod45;
|
||||
|
||||
G4Tubs* solidMod46;
|
||||
G4LogicalVolume* logicMod46;
|
||||
G4VPhysicalVolume* physiMod46;
|
||||
|
||||
G4Tubs* solidMod47;
|
||||
G4LogicalVolume* logicMod47;
|
||||
G4VPhysicalVolume* physiMod47;
|
||||
|
||||
G4Tubs* solidMod48;
|
||||
G4LogicalVolume* logicMod48;
|
||||
G4VPhysicalVolume* physiMod48;
|
||||
|
||||
G4Tubs* solidMod49;
|
||||
G4LogicalVolume* logicMod49;
|
||||
G4VPhysicalVolume* physiMod49;
|
||||
|
||||
G4Tubs* solidMod50;
|
||||
G4LogicalVolume* logicMod50;
|
||||
G4VPhysicalVolume* physiMod50;
|
||||
|
||||
G4Tubs* solidMod51;
|
||||
G4LogicalVolume* logicMod51;
|
||||
G4VPhysicalVolume* physiMod51;
|
||||
|
||||
G4Tubs* solidMod52;
|
||||
G4LogicalVolume* logicMod52;
|
||||
G4VPhysicalVolume* physiMod52;
|
||||
|
||||
G4Tubs* solidMod53;
|
||||
G4LogicalVolume* logicMod53;
|
||||
G4VPhysicalVolume* physiMod53;
|
||||
|
||||
G4Tubs* solidMod54;
|
||||
G4LogicalVolume* logicMod54;
|
||||
G4VPhysicalVolume* physiMod54;
|
||||
|
||||
G4Tubs* solidMod55;
|
||||
G4LogicalVolume* logicMod55;
|
||||
G4VPhysicalVolume* physiMod55;
|
||||
|
||||
G4Tubs* solidMod56;
|
||||
G4LogicalVolume* logicMod56;
|
||||
G4VPhysicalVolume* physiMod56;
|
||||
|
||||
G4Tubs* solidMod57;
|
||||
G4LogicalVolume* logicMod57;
|
||||
G4VPhysicalVolume* physiMod57;
|
||||
|
||||
G4Tubs* solidMod58;
|
||||
G4LogicalVolume* logicMod58;
|
||||
G4VPhysicalVolume* physiMod58;
|
||||
|
||||
G4Tubs* solidMod60;
|
||||
G4LogicalVolume* logicMod60;
|
||||
G4VPhysicalVolume* physiMod60;
|
||||
|
||||
G4Tubs* solidMod61;
|
||||
G4LogicalVolume* logicMod61;
|
||||
G4VPhysicalVolume* physiMod61;
|
||||
|
||||
G4Tubs* solidMod62;
|
||||
G4LogicalVolume* logicMod62;
|
||||
G4VPhysicalVolume* physiMod62;
|
||||
|
||||
G4Tubs* solidMod63;
|
||||
G4LogicalVolume* logicMod63;
|
||||
G4VPhysicalVolume* physiMod63;
|
||||
|
||||
G4Tubs* solidMod64;
|
||||
G4LogicalVolume* logicMod64;
|
||||
G4VPhysicalVolume* physiMod64;
|
||||
|
||||
G4Tubs* solidMod65;
|
||||
G4LogicalVolume* logicMod65;
|
||||
G4VPhysicalVolume* physiMod65;
|
||||
|
||||
G4Tubs* solidMod66;
|
||||
G4LogicalVolume* logicMod66;
|
||||
G4VPhysicalVolume* physiMod66;
|
||||
|
||||
G4Tubs* solidMod67;
|
||||
G4LogicalVolume* logicMod67;
|
||||
G4VPhysicalVolume* physiMod67;
|
||||
|
||||
G4Tubs* solidMod68;
|
||||
G4LogicalVolume* logicMod68;
|
||||
G4VPhysicalVolume* physiMod68;
|
||||
|
||||
G4Tubs* solidMod69;
|
||||
G4LogicalVolume* logicMod69;
|
||||
G4VPhysicalVolume* physiMod69;
|
||||
|
||||
G4Tubs* solidMod70;
|
||||
G4LogicalVolume* logicMod70;
|
||||
G4VPhysicalVolume* physiMod70;
|
||||
|
||||
G4Tubs* solidMod71;
|
||||
G4LogicalVolume* logicMod71;
|
||||
G4VPhysicalVolume* physiMod71;
|
||||
|
||||
G4Tubs* solidMod72;
|
||||
G4LogicalVolume* logicMod72;
|
||||
G4VPhysicalVolume* physiMod72;
|
||||
|
||||
G4Tubs* solidMod73;
|
||||
G4LogicalVolume* logicMod73;
|
||||
G4VPhysicalVolume* physiMod73;
|
||||
|
||||
G4Tubs* solidMod74;
|
||||
G4LogicalVolume* logicMod74;
|
||||
G4VPhysicalVolume* physiMod74;
|
||||
|
||||
G4Tubs* solidMod75;
|
||||
G4LogicalVolume* logicMod75;
|
||||
G4VPhysicalVolume* physiMod75;
|
||||
|
||||
G4Tubs* solidMod76;
|
||||
G4LogicalVolume* logicMod76;
|
||||
G4VPhysicalVolume* physiMod76;
|
||||
|
||||
G4Tubs* solidMod77;
|
||||
G4LogicalVolume* logicMod77;
|
||||
G4VPhysicalVolume* physiMod77;
|
||||
|
||||
G4Tubs* solidMod78;
|
||||
G4LogicalVolume* logicMod78;
|
||||
G4VPhysicalVolume* physiMod78;
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// This is the *BASIC* version of Hadrontherapy, a Geant4-based application
|
||||
// See more at: http://g4advancedexamples.lngs.infn.it/Examples/hadrontherapy
|
||||
//
|
||||
// Visit the Hadrontherapy web site (http://www.lns.infn.it/link/Hadrontherapy) to request
|
||||
// the *COMPLETE* version of this program, together with its documentation;
|
||||
// Hadrontherapy (both basic and full version) are supported by the Italian INFN
|
||||
// Institute in the framework of the MC-INFN Group
|
||||
//
|
||||
|
||||
#ifndef HadrontherapyModulatorMessenger_h
|
||||
#define HadrontherapyModulatorMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class HadrontherapyModulator;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWith3VectorAndUnit;
|
||||
|
||||
class HadrontherapyModulatorMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
HadrontherapyModulatorMessenger(HadrontherapyModulator*);
|
||||
~HadrontherapyModulatorMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
|
||||
// Pointer to the modulator wheel
|
||||
HadrontherapyModulator* Modulator;
|
||||
|
||||
G4UIdirectory* modulatorDir; // Control of the modulator
|
||||
|
||||
G4UIcmdWithADoubleAndUnit* modulatorAngleCmd;
|
||||
// UI command to rotate the modulator wheel
|
||||
|
||||
G4UIcmdWithAString* modulatorMatCmd;
|
||||
// UI command to set the material of the modulator wheel
|
||||
|
||||
G4UIcmdWithAString* modulatorExternalFile;
|
||||
// UI command to set an external file for inputing modulator properties
|
||||
|
||||
G4UIcmdWith3VectorAndUnit* modulatorPositionCmd;
|
||||
// UI command to change the position of the modulator in the the beam line
|
||||
|
||||
|
||||
G4UIcmdWithADoubleAndUnit* modulatorOuterRadiusCmd;
|
||||
// UI command to set the outer radius of the modulator wheel
|
||||
|
||||
G4UIcmdWithADoubleAndUnit* modulatorInnerRadiusCmd;
|
||||
// UI command to set the inner radius of the modulator wheel
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# macro to be run in loop
|
||||
/modulator/angle 1 deg
|
||||
/run/beamOn 100
|
||||
/run/beamOn 10
|
||||
|
||||
@@ -42,15 +42,16 @@
|
||||
# Visualisation
|
||||
#
|
||||
/vis/scene/create
|
||||
/vis/open OGL
|
||||
/vis/open OGLI
|
||||
/vis/viewer/flush
|
||||
/vis/viewer/set/viewpointThetaPhi 50 130 deg
|
||||
/vis/viewer/zoom 3.5
|
||||
/vis/viewer/pan -60 40 cm
|
||||
/vis/scene/add/axes 0 0 0 0.1 m
|
||||
/vis/viewer/zoom 1
|
||||
/vis/viewer/panTo -80 40 cm
|
||||
/vis/scene/add/trajectories
|
||||
/vis/viewer/update
|
||||
/vis/scene/add/trajectories
|
||||
/vis/scene/endOfEventAction accumulate
|
||||
/vis/viewer/set/hiddenMarker 1
|
||||
#########################
|
||||
# Set the primary particle type,
|
||||
# energy and position along the X direction
|
||||
@@ -58,40 +59,72 @@
|
||||
|
||||
#---------------------------gps-----------------
|
||||
/gps/pos/shape Circle
|
||||
/gps/pos/centre -310. 0. 0. cm ##-270
|
||||
/gps/pos/centre -310. 0. 0. cm
|
||||
/gps/pos/radius 0. mm
|
||||
/gps/pos/sigma_r 2. mm ##3
|
||||
/gps/pos/sigma_r 2.5 mm
|
||||
/gps/particle proton
|
||||
/gps/pos/type Beam
|
||||
|
||||
|
||||
# the incident surface is in the y-z plane
|
||||
|
||||
/gps/pos/rot1 0 1 0
|
||||
/gps/pos/rot2 0 0 1
|
||||
|
||||
# the beam is travelling along the x-axis without any angular dispersion (angular despersion set to 0.0)
|
||||
#
|
||||
|
||||
/gps/ang/rot1 0 0 1
|
||||
/gps/ang/rot2 0 1 0
|
||||
/gps/ang/type beam1d
|
||||
/gps/ang/sigma_r 0. deg
|
||||
|
||||
|
||||
# the beam energy is in gaussian profile
|
||||
#
|
||||
/gps/ene/type Gauss
|
||||
/gps/energy 62 MeV
|
||||
/gps/ene/sigma 300 keV
|
||||
/gps/direction 1 0 0
|
||||
/gps/ene/mono 62 MeV
|
||||
/gps/ene/sigma 0.3 MeV
|
||||
|
||||
|
||||
##########################
|
||||
# Set here the cut and the step max for the tracking.
|
||||
# Suggested values of cut and step:
|
||||
/run/setCut 0.1 mm
|
||||
/Step/waterPhantomStepMax 0.01 mm
|
||||
#
|
||||
#/Physics/setDetectorCuts 0.001 mm
|
||||
#/Physics/setCuts 1 mm
|
||||
/Step/waterPhantomStepMax 0.005 mm
|
||||
|
||||
/changePhantom/size 40 40 40 cm
|
||||
/changePhantom/position 20 0 0 cm
|
||||
|
||||
/changeDetector/size 4 4 4 cm
|
||||
/changeDetector/voxelSize .1 40 40 mm
|
||||
|
||||
/changeDetector/displacement 0 18. 18. cm
|
||||
/changePhantom/update
|
||||
|
||||
|
||||
# IF YOU WANT A RANGE SHIFTER PLEASE CHANGE
|
||||
# THE FOLLOWIG PARAMETERS
|
||||
# SETTING FOR THE RANGE SHIFTER
|
||||
|
||||
/beamLine/RangeShifter/RSMat G4_AIR
|
||||
/beamLine/RangeShifter/thickness 1 cm
|
||||
# /beamLine/RangeShifter/G4_PLEXIGLASS
|
||||
# /beamLine/RangeShifter/thickness 1 cm
|
||||
##########################################################
|
||||
### Set the modulator properties
|
||||
|
||||
/modulator/ReadData
|
||||
|
||||
# You can set as a parameter your data file in a right format instead if you left blank or input default, ..
|
||||
# .. data will be read from the default file "ModulWeight.txt"
|
||||
|
||||
/modulator/RMWMat G4_PLEXIGLASS
|
||||
/modulator/position -2160.5 30 50 mm
|
||||
/modulator/innerRadius 2.5 cm
|
||||
/modulator/outRadius 9.5 cm
|
||||
############################################################
|
||||
/event/printEventNumber 1000
|
||||
|
||||
# START OF THE MODULATOR ROTATION
|
||||
# IT CONSISTS IN A COMPLETE ROTATION
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,131 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// This is the *BASIC* version of Hadrontherapy, a Geant4-based application
|
||||
// See more at: http://g4advancedexamples.lngs.infn.it/Examples/hadrontherapy
|
||||
//
|
||||
// Visit the Hadrontherapy web site (http://www.lns.infn.it/link/Hadrontherapy) to request
|
||||
// the *COMPLETE* version of this program, together with its documentation;
|
||||
// Hadrontherapy (both basic and full version) are supported by the Italian INFN
|
||||
// Institute in the framework of the MC-INFN Group
|
||||
//
|
||||
|
||||
|
||||
#include "HadrontherapyModulatorMessenger.hh"
|
||||
#include "HadrontherapyModulator.hh"
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "G4UIcmdWithADoubleAndUnit.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
#include "G4UIcmdWith3VectorAndUnit.hh"
|
||||
|
||||
|
||||
HadrontherapyModulatorMessenger::HadrontherapyModulatorMessenger(HadrontherapyModulator* Mod)
|
||||
:Modulator(Mod)
|
||||
|
||||
{
|
||||
modulatorDir = new G4UIdirectory("/modulator/");
|
||||
modulatorDir -> SetGuidance("Command to change the modulator wheel proprties");
|
||||
|
||||
modulatorMatCmd = new G4UIcmdWithAString("/modulator/RMWMat",this);
|
||||
modulatorMatCmd -> SetGuidance("Set material of modulatorWheel");
|
||||
modulatorMatCmd -> SetParameterName("Material",false);
|
||||
modulatorMatCmd -> AvailableForStates(G4State_Idle);
|
||||
|
||||
modulatorExternalFile=new G4UIcmdWithAString("/modulator/ReadData",this);
|
||||
modulatorExternalFile -> SetGuidance("set properties of modulator steps via a external file");
|
||||
modulatorExternalFile -> SetParameterName("FileName",true,false);
|
||||
modulatorExternalFile -> SetDefaultValue ("default");
|
||||
modulatorExternalFile -> AvailableForStates(G4State_Idle);
|
||||
|
||||
modulatorPositionCmd = new G4UIcmdWith3VectorAndUnit("/modulator/position",this);
|
||||
modulatorPositionCmd -> SetGuidance("Set position of modulato");
|
||||
modulatorPositionCmd -> SetParameterName("PositionAlongX",
|
||||
"PositionAlongY",
|
||||
"PositionAlongZ",false);
|
||||
modulatorPositionCmd -> SetDefaultUnit("mm");
|
||||
modulatorPositionCmd -> SetUnitCandidates("mm cm m");
|
||||
modulatorPositionCmd -> AvailableForStates(G4State_Idle);
|
||||
|
||||
|
||||
modulatorOuterRadiusCmd = new G4UIcmdWithADoubleAndUnit("/modulator/outRadius",this);
|
||||
modulatorOuterRadiusCmd -> SetGuidance("Set size of outer radius");
|
||||
modulatorOuterRadiusCmd-> SetParameterName("Size",false);
|
||||
modulatorOuterRadiusCmd -> SetDefaultUnit("mm");
|
||||
modulatorOuterRadiusCmd-> SetUnitCandidates("mm cm m");
|
||||
modulatorOuterRadiusCmd-> AvailableForStates(G4State_Idle);
|
||||
|
||||
modulatorInnerRadiusCmd = new G4UIcmdWithADoubleAndUnit("/modulator/innerRadius",this);
|
||||
modulatorInnerRadiusCmd -> SetGuidance("Set size of inner radius");
|
||||
modulatorInnerRadiusCmd-> SetParameterName("Size",false);
|
||||
modulatorInnerRadiusCmd -> SetDefaultUnit("mm");
|
||||
modulatorInnerRadiusCmd-> SetUnitCandidates("mm cm m");
|
||||
modulatorInnerRadiusCmd-> AvailableForStates(G4State_Idle);
|
||||
|
||||
modulatorAngleCmd = new G4UIcmdWithADoubleAndUnit("/modulator/angle",this);
|
||||
modulatorAngleCmd -> SetGuidance("Set Modulator Angle");
|
||||
modulatorAngleCmd -> SetParameterName("Size",false);
|
||||
modulatorAngleCmd -> SetRange("Size>=0.");
|
||||
modulatorAngleCmd -> SetUnitCategory("Angle");
|
||||
modulatorAngleCmd -> AvailableForStates(G4State_Idle);
|
||||
}
|
||||
|
||||
HadrontherapyModulatorMessenger::~ HadrontherapyModulatorMessenger()
|
||||
{
|
||||
delete modulatorAngleCmd;
|
||||
delete modulatorMatCmd;
|
||||
delete modulatorPositionCmd;
|
||||
delete modulatorInnerRadiusCmd;
|
||||
delete modulatorOuterRadiusCmd;
|
||||
delete modulatorDir;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void HadrontherapyModulatorMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
|
||||
{
|
||||
if( command == modulatorAngleCmd )
|
||||
{Modulator -> SetModulatorAngle
|
||||
(modulatorAngleCmd -> GetNewDoubleValue(newValue));}
|
||||
|
||||
else if( command == modulatorMatCmd )
|
||||
{Modulator -> SetModulatorMaterial(newValue);}
|
||||
|
||||
else if (command== modulatorExternalFile)
|
||||
{Modulator->GetDataFromFile(newValue);}
|
||||
|
||||
else if( command == modulatorPositionCmd )
|
||||
{ G4ThreeVector size = modulatorPositionCmd-> GetNew3VectorValue(newValue);
|
||||
Modulator -> SetModulatorPosition(size);}
|
||||
|
||||
else if( command == modulatorOuterRadiusCmd )
|
||||
{ Modulator -> SetModulatorOuterRadius(
|
||||
modulatorOuterRadiusCmd -> GetNewDoubleValue(newValue));}
|
||||
|
||||
else if( command == modulatorInnerRadiusCmd )
|
||||
{ Modulator -> SetModulatorInnerRadius(
|
||||
modulatorInnerRadiusCmd -> GetNewDoubleValue(newValue));}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user