Import Geant4 10.6.0 source tree
This commit is contained in:
@@ -42,7 +42,7 @@ wls.mac implements a scintillating slab and wavelength shifting fibers.
|
||||
6 "photons absorbed at boundary per event"
|
||||
7 "energy deposition in scintillator per event"
|
||||
|
||||
\section LXe_s5 How to start?
|
||||
\section LXe_s6 How to start?
|
||||
|
||||
- execute LXe in 'batch' mode from macro files, e.g.
|
||||
$ ./LXe cerenkov.mac
|
||||
@@ -52,7 +52,7 @@ wls.mac implements a scintillating slab and wavelength shifting fibers.
|
||||
Then type commands, for instance
|
||||
Session: /run/beamOn 1
|
||||
|
||||
\section LXe_s6 Detailed Explanation of Geometry Implementation
|
||||
\section LXe_s7 Detailed Explanation of Geometry Implementation
|
||||
|
||||
The way the geometry is constructed is an experiment for a new, more object
|
||||
oriented, way to construct geometry. It separates the concept of how a volume
|
||||
@@ -100,7 +100,7 @@ and defined only once.
|
||||
The updated variable is to signal that the volume needs to be updated and a new
|
||||
logical volume made.
|
||||
|
||||
\section LXe_s7 Modifying the geometry at runtime
|
||||
\section LXe_s8 Modifying the geometry at runtime
|
||||
|
||||
This example allows the user to modify the geometry definition at runtime. This
|
||||
is accomplished through LXeDetectorMessenger, a derived class of G4UImessenger.
|
||||
@@ -120,7 +120,7 @@ are used when constructing the geometry.
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
\section LXe_s7 PMT sensitive detector
|
||||
\section LXe_s9 PMT sensitive detector
|
||||
|
||||
The PMT sensitive detector cannot be triggered like a normal sensitive detector
|
||||
because the sensitive volume does not allow photons to pass through it. Rather,
|
||||
@@ -173,7 +173,7 @@ from G4SDManager and call its ProcessHits function.
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
\section LXe_s8 Selectively drawing trajectories or highlighting volumes
|
||||
\section LXe_s10 Selectively drawing trajectories or highlighting volumes
|
||||
|
||||
In a simulation such as this one, where an average of 6000 trajectories are
|
||||
generated in a small space, there is little use in drawing all of them. There
|
||||
@@ -219,7 +219,7 @@ the logic used in choosing which trajectories to draw.
|
||||
See /LXe/detector/volumes/sphere in "UI commands" below for info on what
|
||||
trajectories are drawn in this simulation.
|
||||
|
||||
\section LXe_s9 Saving random engine seeds
|
||||
\section LXe_s11 Saving random engine seeds
|
||||
|
||||
At times it may be necessary to review a particular event of interest. To do
|
||||
this without redoing an entire run, which may take a long time, you must store
|
||||
@@ -234,7 +234,7 @@ When set to true, this causes the run manager to write the seed for the
|
||||
beginning of the current run to CurrentRun.rndm and the current event to
|
||||
CurrentEvent.rndm. However, at the beginning of each event this file will be
|
||||
overwritten with the new event. To keep a copy for a particular event there is
|
||||
a function to copy this file to run###evt###.rndm.
|
||||
a function to copy this file to "run###evt###.rndm".
|
||||
|
||||
\verbatim
|
||||
G4RunManager::rndmSaveThisEvent()
|
||||
@@ -252,7 +252,7 @@ directory to save in must exist first. GEANT4 will not create it for you.
|
||||
G4RunManager::SetRandomNumberStoreDir(G4String)
|
||||
\endverbatim
|
||||
|
||||
\section LXe_s10 UI commands
|
||||
\section LXe_s12 UI commands
|
||||
|
||||
Directories:
|
||||
\verbatim
|
||||
@@ -267,7 +267,7 @@ Commands:
|
||||
\endverbatim
|
||||
-Specifies a threshold for saving the random seed for an event. If the number
|
||||
of photons generated in an event is below this number then the random seed is
|
||||
saved to ./random/run###evt###.rndm. See "Saving random engine seeds".
|
||||
saved to "./random/run###evt###.rndm". See "Saving random engine seeds".
|
||||
|
||||
\verbatim
|
||||
/LXe/eventVerbose <int, default = 1>
|
||||
|
||||
@@ -14,6 +14,22 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
November 28, 2019 I. Hrivnacova (LXe-V10-05-05)
|
||||
- Fixed Doxygen warnings in .README.txt
|
||||
|
||||
November 26, 2019 I. Hrivnacova (LXe-V10-05-04)
|
||||
- Fixed formatting in .README.txt and Doxygen warnings
|
||||
|
||||
October 29, 2019 D. Sawkey (LXe-V10-05-03)
|
||||
- wls.mac, cerenkov.mac: unique analysis filenames
|
||||
|
||||
October 28, 2019 D. Sawkey (LXe-V10-05-02)
|
||||
- LXePMTSD.cc, LXeDetectorConstruction.cc - update PMT positions when changing
|
||||
number of PMTs
|
||||
|
||||
October 15, 2019 D. Sawkey (LXe-V10-05-01)
|
||||
- wls.mac, cerenkov.mac - fewer particles
|
||||
|
||||
May 24, 2019 D. Sawkey (LXe-V10-05-00)
|
||||
- LXeDetectorConstruction - remove protection against rebuilding detector
|
||||
- LXeEventAction - randomSaveEvent not working so comment out
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
|
||||
############################################
|
||||
!!! WARNING - FPE detection is activated !!!
|
||||
############################################
|
||||
|
||||
**************************************************************
|
||||
Geant4 version Name: geant4-10-05-ref-06 (30-June-2019)
|
||||
Geant4 version Name: geant4-10-06-ref-00 (6-December-2019)
|
||||
Copyright : Geant4 Collaboration
|
||||
References : NIM A 506 (2003), 250-303
|
||||
: IEEE-TNS 53 (2006), 270-278
|
||||
@@ -8,7 +12,7 @@
|
||||
WWW : http://geant4.org/
|
||||
**************************************************************
|
||||
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT 2.0
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT
|
||||
|
||||
G4VModularPhysicsList::ReplacePhysics: G4EmStandardwith type : 2 is replaces with G4EmStandard_opt4
|
||||
Visualization Manager instantiating with verbosity "warnings (3)"...
|
||||
@@ -60,10 +64,10 @@ Construction /LXeDet/pmtSD
|
||||
Construction /LXeDet/scintSD
|
||||
|
||||
FTFP_BERT : new threshold between BERT and FTFP is over the interval
|
||||
for pions : 3 to 12 GeV
|
||||
for kaons : 3 to 12 GeV
|
||||
for proton : 3 to 12 GeV
|
||||
for neutron : 3 to 12 GeV
|
||||
for pions : 3 to 6 GeV
|
||||
for kaons : 3 to 6 GeV
|
||||
for proton : 3 to 6 GeV
|
||||
for neutron : 3 to 6 GeV
|
||||
|
||||
### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0
|
||||
### Birks coefficients used in run time
|
||||
@@ -89,9 +93,7 @@ compt: for gamma SubType=13 BuildTable=1
|
||||
conv: for gamma SubType=14 BuildTable=1
|
||||
Lambda table from 1.022 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PenConversion : Emin= 0 eV Emax= 20 MeV
|
||||
BetheHeitler : Emin= 20 MeV Emax= 80 GeV ModifiedTsai
|
||||
BetheHeitlerLPM : Emin= 80 GeV Emax= 100 TeV ModifiedTsai
|
||||
BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
Rayl: for gamma SubType=11 BuildTable=1
|
||||
Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0
|
||||
@@ -476,7 +478,7 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
|
||||
Process: neutronInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 12 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: nCapture
|
||||
@@ -489,8 +491,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Hadronic Processes for GenericIon
|
||||
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -501,8 +503,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: He3Inelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -513,8 +515,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: alphaInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -563,8 +565,9 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Hadronic Processes for anti_neutron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_neutronInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
@@ -608,14 +611,14 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: dInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e+
|
||||
|
||||
Process: positronNuclear
|
||||
Process: electronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -630,7 +633,7 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Hadronic Processes for gamma
|
||||
|
||||
Process: photonNuclear
|
||||
Model: BertiniCascade: 0 eV ---> 3.5 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: PhotoNuclearXS: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -643,9 +646,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
|
||||
Process: kaon+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 12 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsKaonPlusInelasticXS: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon-
|
||||
@@ -656,9 +658,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
|
||||
Process: kaon-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 12 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsKaonMinusInelasticXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
@@ -671,8 +672,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
|
||||
Process: lambdaInelastic
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Cr_sctns: ChipsHyperonInelasticXS: 0 eV ---> 100 TeV
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for mu+
|
||||
@@ -694,26 +695,24 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Hadronic Processes for pi+
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: pi+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 12 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi-
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: pi-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 12 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hBertiniCaptureAtRest
|
||||
@@ -727,7 +726,7 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
|
||||
Process: protonInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 12 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -738,8 +737,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: tInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
================================================================
|
||||
@@ -748,21 +747,24 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
=======================================================================
|
||||
Type of pre-compound inverse x-section 3
|
||||
Pre-compound model active 1
|
||||
Pre-compound low energy (MeV) 0.1
|
||||
Pre-compound excitation low energy (MeV) 0.1
|
||||
Pre-compound excitation high energy (MeV) 30
|
||||
Type of de-excitation inverse x-section 3
|
||||
Type of de-excitation factory Evaporation+GEM
|
||||
Number of de-excitation channels 68
|
||||
Min excitation energy (keV) 0.01
|
||||
Min energy per nucleon for multifragmentation (MeV) 1e+05
|
||||
Min energy per nucleon for multifragmentation (MeV) 2e+05
|
||||
Limit excitation energy for Fermi BreakUp (MeV) 20
|
||||
Level density (1/MeV) 0.075
|
||||
Model of level density flag 1
|
||||
Use simple level density model 1
|
||||
Use discrete excitation energy of the residual 0
|
||||
Time limit for long lived isomeres (ns) 1e+12
|
||||
Internal e- conversion flag 1
|
||||
Store e- internal conversion data 0
|
||||
Electron internal conversion ID 2
|
||||
Correlated gamma emission flag 0
|
||||
Max 2J for sampling of angular correlations 10
|
||||
Upload data before 1st event for Z < 9
|
||||
=======================================================================
|
||||
|
||||
========= Table of registered couples ==============================
|
||||
@@ -800,9 +802,9 @@ Index : 3 used in the geometry : Yes
|
||||
G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model.
|
||||
See commands in /vis/modeling/trajectories/ for other options.
|
||||
### Run 0 starts.
|
||||
Energy weighted position of hits in LXe : (6.57173,-10.9046,-101.128)
|
||||
Energy weighted position of hits in LXe : (6.57187,-10.9049,-101.128)
|
||||
Total energy deposition in scintillator : 397.837 (keV)
|
||||
Reconstructed position of hits in LXe : (0,0,0)
|
||||
Reconstructed position of hits in LXe : (1.28432,-3.61922,-19.9117)
|
||||
WARNING: G4VisManager::IsValidView(): Attempt to draw when no graphics system
|
||||
has been instantiated. Use "/vis/open" or "/vis/sceneHandler/create".
|
||||
Alternatively, to avoid this message, suppress instantiation of vis
|
||||
@@ -818,7 +820,7 @@ Unaccounted for photons in this event : 0
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 1
|
||||
User=0.060000s Real=0.069703s Sys=0.000000s
|
||||
User=0.040000s Real=0.041733s Sys=0.010000s
|
||||
|
||||
======================== run summary ======================
|
||||
The run was 1 events.
|
||||
@@ -864,9 +866,9 @@ Index : 3 used in the geometry : Yes
|
||||
====================================================================
|
||||
|
||||
### Run 1 starts.
|
||||
Energy weighted position of hits in LXe : (2.49609,2.75035,-98.0652)
|
||||
Energy weighted position of hits in LXe : (2.49614,2.7504,-98.065)
|
||||
Total energy deposition in scintillator : 537.024 (keV)
|
||||
Reconstructed position of hits in LXe : (0,0,0)
|
||||
Reconstructed position of hits in LXe : (1.40728,2.4522,-20.0827)
|
||||
Number of photons that hit PMTs in this event : 1364
|
||||
Number of PMTs above threshold(2) : 32
|
||||
Number of photons produced by scintillation in this event : 5046
|
||||
@@ -874,9 +876,9 @@ Index : 3 used in the geometry : Yes
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3682
|
||||
Number of photons absorbed at boundaries (OpBoundary) in this event : 0
|
||||
Unaccounted for photons in this event : 0
|
||||
Energy weighted position of hits in LXe : (0.0615119,-2.78626,-91.1114)
|
||||
Energy weighted position of hits in LXe : (0.0615129,-2.78631,-91.111)
|
||||
Total energy deposition in scintillator : 536.004 (keV)
|
||||
Reconstructed position of hits in LXe : (0,0,0)
|
||||
Reconstructed position of hits in LXe : (-1.51165,0.787524,-20.7863)
|
||||
Number of photons that hit PMTs in this event : 1474
|
||||
Number of PMTs above threshold(2) : 32
|
||||
Number of photons produced by scintillation in this event : 5010
|
||||
@@ -884,9 +886,9 @@ Unaccounted for photons in this event : 0
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3536
|
||||
Number of photons absorbed at boundaries (OpBoundary) in this event : 0
|
||||
Unaccounted for photons in this event : 0
|
||||
Energy weighted position of hits in LXe : (-2.32775,-0.0358212,-89.5269)
|
||||
Energy weighted position of hits in LXe : (-2.32778,-0.0358351,-89.5265)
|
||||
Total energy deposition in scintillator : 538.496 (keV)
|
||||
Reconstructed position of hits in LXe : (0,0,0)
|
||||
Reconstructed position of hits in LXe : (2.04655,0.390137,-21.1603)
|
||||
Number of photons that hit PMTs in this event : 1482
|
||||
Number of PMTs above threshold(2) : 32
|
||||
Number of photons produced by scintillation in this event : 5373
|
||||
@@ -894,9 +896,9 @@ Unaccounted for photons in this event : 0
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3891
|
||||
Number of photons absorbed at boundaries (OpBoundary) in this event : 0
|
||||
Unaccounted for photons in this event : 0
|
||||
Energy weighted position of hits in LXe : (-3.21847,3.82021,-71.9622)
|
||||
Energy weighted position of hits in LXe : (-3.22631,3.81231,-71.956)
|
||||
Total energy deposition in scintillator : 537.361 (keV)
|
||||
Reconstructed position of hits in LXe : (0,0,0)
|
||||
Reconstructed position of hits in LXe : (-3.10581,2.58855,-24.8646)
|
||||
Number of photons that hit PMTs in this event : 1551
|
||||
Number of PMTs above threshold(2) : 32
|
||||
Number of photons produced by scintillation in this event : 5280
|
||||
@@ -904,19 +906,19 @@ Unaccounted for photons in this event : 0
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3729
|
||||
Number of photons absorbed at boundaries (OpBoundary) in this event : 0
|
||||
Unaccounted for photons in this event : 0
|
||||
Energy weighted position of hits in LXe : (0.302159,0.56721,-102.03)
|
||||
Total energy deposition in scintillator : 539.174 (keV)
|
||||
Reconstructed position of hits in LXe : (0,0,0)
|
||||
Number of photons that hit PMTs in this event : 1443
|
||||
Energy weighted position of hits in LXe : (0.306863,0.568819,-102.037)
|
||||
Total energy deposition in scintillator : 539.139 (keV)
|
||||
Reconstructed position of hits in LXe : (-2.34309,1.69399,-17.6345)
|
||||
Number of photons that hit PMTs in this event : 1448
|
||||
Number of PMTs above threshold(2) : 32
|
||||
Number of photons produced by scintillation in this event : 5428
|
||||
Number of photons produced by cerenkov in this event : 0
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3985
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3980
|
||||
Number of photons absorbed at boundaries (OpBoundary) in this event : 0
|
||||
Unaccounted for photons in this event : 0
|
||||
Energy weighted position of hits in LXe : (-28.9681,5.80242,-84.4603)
|
||||
Energy weighted position of hits in LXe : (-28.9686,5.80253,-84.4598)
|
||||
Total energy deposition in scintillator : 536.904 (keV)
|
||||
Reconstructed position of hits in LXe : (0,0,0)
|
||||
Reconstructed position of hits in LXe : (-7.13119,3.32701,-23.1916)
|
||||
Number of photons that hit PMTs in this event : 1606
|
||||
Number of PMTs above threshold(2) : 32
|
||||
Number of photons produced by scintillation in this event : 5270
|
||||
@@ -924,66 +926,66 @@ Unaccounted for photons in this event : 0
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3664
|
||||
Number of photons absorbed at boundaries (OpBoundary) in this event : 0
|
||||
Unaccounted for photons in this event : 0
|
||||
Energy weighted position of hits in LXe : (-9.57001,0.707628,-74.8538)
|
||||
Total energy deposition in scintillator : 537.977 (keV)
|
||||
Reconstructed position of hits in LXe : (0,0,0)
|
||||
Number of photons that hit PMTs in this event : 1483
|
||||
Energy weighted position of hits in LXe : (-9.61,0.634004,-74.8345)
|
||||
Total energy deposition in scintillator : 538.456 (keV)
|
||||
Reconstructed position of hits in LXe : (-1.76512,0.78514,-21.6676)
|
||||
Number of photons that hit PMTs in this event : 1589
|
||||
Number of PMTs above threshold(2) : 32
|
||||
Number of photons produced by scintillation in this event : 5300
|
||||
Number of photons produced by scintillation in this event : 5474
|
||||
Number of photons produced by cerenkov in this event : 0
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3817
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3885
|
||||
Number of photons absorbed at boundaries (OpBoundary) in this event : 0
|
||||
Unaccounted for photons in this event : 0
|
||||
Energy weighted position of hits in LXe : (-11.9823,-8.21268,-29.2203)
|
||||
Total energy deposition in scintillator : 536.679 (keV)
|
||||
Reconstructed position of hits in LXe : (0,0,0)
|
||||
Number of photons that hit PMTs in this event : 1531
|
||||
Energy weighted position of hits in LXe : (0.0363846,0.105927,1.02407)
|
||||
Total energy deposition in scintillator : 537.816 (keV)
|
||||
Reconstructed position of hits in LXe : (0.0886957,-1.9392,-3.10788)
|
||||
Number of photons that hit PMTs in this event : 1566
|
||||
Number of PMTs above threshold(2) : 32
|
||||
Number of photons produced by scintillation in this event : 5163
|
||||
Number of photons produced by scintillation in this event : 5359
|
||||
Number of photons produced by cerenkov in this event : 0
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3632
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3793
|
||||
Number of photons absorbed at boundaries (OpBoundary) in this event : 0
|
||||
Unaccounted for photons in this event : 0
|
||||
Energy weighted position of hits in LXe : (5.31057,19.3064,9.94298)
|
||||
Total energy deposition in scintillator : 537.652 (keV)
|
||||
Reconstructed position of hits in LXe : (0,0,0)
|
||||
Number of photons that hit PMTs in this event : 1477
|
||||
Energy weighted position of hits in LXe : (-37.9051,4.79651,-58.1883)
|
||||
Total energy deposition in scintillator : 534.116 (keV)
|
||||
Reconstructed position of hits in LXe : (-5.24428,2.10736,-21.589)
|
||||
Number of photons that hit PMTs in this event : 1351
|
||||
Number of PMTs above threshold(2) : 32
|
||||
Number of photons produced by scintillation in this event : 5247
|
||||
Number of photons produced by scintillation in this event : 4621
|
||||
Number of photons produced by cerenkov in this event : 0
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3770
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3270
|
||||
Number of photons absorbed at boundaries (OpBoundary) in this event : 0
|
||||
Unaccounted for photons in this event : 0
|
||||
Energy weighted position of hits in LXe : (-0.0552048,-0.0042507,-107.28)
|
||||
Total energy deposition in scintillator : 351.028 (keV)
|
||||
Reconstructed position of hits in LXe : (0,0,0)
|
||||
Number of photons that hit PMTs in this event : 973
|
||||
Energy weighted position of hits in LXe : (17.9054,-5.11137,-52.179)
|
||||
Total energy deposition in scintillator : 537.172 (keV)
|
||||
Reconstructed position of hits in LXe : (6.4645,-2.30882,-22.6731)
|
||||
Number of photons that hit PMTs in this event : 1566
|
||||
Number of PMTs above threshold(2) : 32
|
||||
Number of photons produced by scintillation in this event : 3638
|
||||
Number of photons produced by scintillation in this event : 5268
|
||||
Number of photons produced by cerenkov in this event : 0
|
||||
Number of photons absorbed (OpAbsorption) in this event : 2665
|
||||
Number of photons absorbed (OpAbsorption) in this event : 3702
|
||||
Number of photons absorbed at boundaries (OpBoundary) in this event : 0
|
||||
Unaccounted for photons in this event : 0
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 10
|
||||
User=0.630000s Real=0.645956s Sys=0.010000s
|
||||
User=0.540000s Real=0.549259s Sys=0.000000s
|
||||
|
||||
======================== run summary ======================
|
||||
The run was 10 events.
|
||||
Number of hits per event: 1438 +- 52.74
|
||||
Number of hits per event: 1500 +- 27.36
|
||||
Number of hits per event above threshold: 32 +- 0
|
||||
Number of scintillation photons per event : 5076 +- 156.6
|
||||
Number of scintillation photons per event : 5213 +- 76.91
|
||||
Number of Cerenkov photons per event: 0 +- 0
|
||||
Number of absorbed photons per event : 3637 +- 109.6
|
||||
Number of absorbed photons per event : 3713 +- 60.85
|
||||
Number of photons absorbed at boundary per event: 0 +- 0
|
||||
Total energy deposition in scintillator per event: 518.8 +- 17.69 keV.
|
||||
Total energy deposition in scintillator per event: 537.2 +- 0.4297 keV.
|
||||
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
G4 kernel has come to Quit state.
|
||||
================== Deleting memory pools ===================
|
||||
Number of memory pools allocated: 15 of which, static: 0
|
||||
Dynamic pools deleted: 15 / Total memory freed: 2 MB
|
||||
Dynamic pools deleted: 15 / Total memory freed: 2.7 MB
|
||||
============================================================
|
||||
RunManagerKernel is deleted. Good bye :)
|
||||
|
||||
@@ -6,20 +6,17 @@
|
||||
##
|
||||
#################
|
||||
|
||||
/run/initialize
|
||||
/control/verbose 1
|
||||
/tracking/verbose 0
|
||||
/run/verbose 1
|
||||
/LXe/eventVerbose 0
|
||||
/process/optical/processActivation Scintillation false
|
||||
|
||||
/run/initialize
|
||||
|
||||
/LXe/eventVerbose 0
|
||||
/LXe/detector/defaults
|
||||
/LXe/oneStepPrimaries false
|
||||
|
||||
#This currently causes the program to crash due to a bug in geant4
|
||||
#Uncomment it once that bug has been fixed. Until then, to use this,
|
||||
#modify LXePhysicsList to disable scintillation.
|
||||
#/process/inactivate Scintillation
|
||||
|
||||
/LXe/detector/MainScintYield 0
|
||||
|
||||
/LXe/detector/nx 20
|
||||
@@ -41,6 +38,7 @@
|
||||
#reset from a random seed that shows a good cone
|
||||
#/random/resetEngineFrom random/goodCerenkov.rndm
|
||||
|
||||
/analysis/setFileName cerenkov
|
||||
/analysis/h1/set 1 100 -1 50
|
||||
/analysis/h1/set 2 100 -1 50
|
||||
/analysis/h1/set 4 100 -1 200
|
||||
@@ -49,4 +47,4 @@
|
||||
/analysis/h1/set 7 100 0 20 MeV
|
||||
|
||||
/run/printProgress 1000
|
||||
/run/beamOn 100000
|
||||
/run/beamOn 10000
|
||||
|
||||
@@ -60,13 +60,13 @@ class LXePMTSD : public G4VSensitiveDetector
|
||||
void PrintAll();
|
||||
|
||||
//Initialize the arrays to store pmt possitions
|
||||
inline void InitPMTs(G4int nPMTs){
|
||||
inline void InitPMTs(){
|
||||
if(fPMTPositionsX)delete fPMTPositionsX;
|
||||
if(fPMTPositionsY)delete fPMTPositionsY;
|
||||
if(fPMTPositionsZ)delete fPMTPositionsZ;
|
||||
fPMTPositionsX=new G4DataVector(nPMTs);
|
||||
fPMTPositionsY=new G4DataVector(nPMTs);
|
||||
fPMTPositionsZ=new G4DataVector(nPMTs);
|
||||
fPMTPositionsX = new G4DataVector();
|
||||
fPMTPositionsY = new G4DataVector();
|
||||
fPMTPositionsZ = new G4DataVector();
|
||||
}
|
||||
|
||||
//Store a pmt position
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file optical/LXe/include/Run.hh
|
||||
/// \brief Definition of the Run class
|
||||
/// \file optical/LXe/include/LXeRun.hh
|
||||
/// \brief Definition of the LXeRun class
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -307,15 +307,20 @@ void LXeDetectorConstruction::ConstructSDandField() {
|
||||
|
||||
// PMT SD
|
||||
|
||||
if (!fPmt_SD.Get()) {
|
||||
LXePMTSD* pmt = fPmt_SD.Get();
|
||||
if (!pmt) {
|
||||
//Created here so it exists as pmts are being placed
|
||||
G4cout << "Construction /LXeDet/pmtSD" << G4endl;
|
||||
LXePMTSD* pmt_SD = new LXePMTSD("/LXeDet/pmtSD");
|
||||
fPmt_SD.Put(pmt_SD);
|
||||
|
||||
pmt_SD->InitPMTs((fNx*fNy+fNx*fNz+fNy*fNz)*2); //let pmtSD know # of pmts
|
||||
pmt_SD->InitPMTs();
|
||||
pmt_SD->SetPmtPositions(fMainVolume->GetPmtPositions());
|
||||
}
|
||||
else {
|
||||
pmt->InitPMTs();
|
||||
pmt->SetPmtPositions(fMainVolume->GetPmtPositions());
|
||||
}
|
||||
G4SDManager::GetSDMpointer()->AddNewDetector(fPmt_SD.Get());
|
||||
//sensitive detector is not actually on the photocathode.
|
||||
//processHits gets done manually by the stepping action.
|
||||
|
||||
@@ -14,9 +14,10 @@
|
||||
/gun/particle e-
|
||||
/gun/energy 511 keV
|
||||
|
||||
/analysis/setFileName wls
|
||||
/analysis/h1/set 3 100 -1 10000
|
||||
/analysis/h1/set 4 100 -1 100
|
||||
/analysis/h1/set 5 100 -1 10000
|
||||
|
||||
/run/printProgress 10
|
||||
/run/beamOn 1000
|
||||
/run/beamOn 100
|
||||
|
||||
@@ -14,7 +14,7 @@ examples/extended/optical/LXe and wls
|
||||
|
||||
Define Random Number Engine and initial seed
|
||||
|
||||
\section ExampleOpNovice_s2 G4VUserPhysicsList
|
||||
\section ExampleOpNovice_s2 G4OpticalPhysics
|
||||
|
||||
- Define particles; including - *** G4OpticalPhoton ***
|
||||
- Define processes; including
|
||||
@@ -24,7 +24,7 @@ examples/extended/optical/LXe and wls
|
||||
- *** G4OpRayleigh ***
|
||||
- *** G4OpBoundaryProcess ***
|
||||
|
||||
A messenger command allows to define interactivly the
|
||||
A messenger command allows to define interactively the
|
||||
verbose level and the maximum number of Cerenkov photons per step
|
||||
(see for instance OpNovice.in)
|
||||
|
||||
@@ -41,7 +41,7 @@ examples/extended/optical/LXe and wls
|
||||
|
||||
Use G4ParticleGun to shoot a charge particle into a Cerenkov radiator
|
||||
|
||||
A messenger command allows to define interactivly the polarization of an
|
||||
A messenger command allows to define interactively the polarization of an
|
||||
primary optical photon (see for instance optPhoton.mac)
|
||||
|
||||
\section ExampleOpNovice_s5 G4UserRunAction
|
||||
@@ -66,10 +66,6 @@ examples/extended/optical/LXe and wls
|
||||
\section ExampleOpNovice_s8 How to start
|
||||
|
||||
- compile and link to generate an executable
|
||||
\verbatim
|
||||
% cd OpNovice
|
||||
% gmake
|
||||
\endverbatim
|
||||
|
||||
This example handles the program arguments in a new way.
|
||||
It can be run with the following optional arguments:
|
||||
|
||||
@@ -14,6 +14,10 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
October 29, 2019 D. Sawkey (OpNovice-V10-05-00)
|
||||
- Use G4OpticalPhysics and G4SteppingVerbose
|
||||
- remove unused surface parameters
|
||||
|
||||
July 31, 2018 I. Hrivnacova (OpNovice-V10-04-02)
|
||||
- Macro review:
|
||||
- Added test for /OpNovice/phys/cerenkovMaxPhotons command at the end
|
||||
|
||||
@@ -53,9 +53,11 @@
|
||||
|
||||
#include "G4UImanager.hh"
|
||||
|
||||
#include "OpNovicePhysicsList.hh"
|
||||
#include "OpNoviceDetectorConstruction.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
#include "G4OpticalPhysics.hh"
|
||||
#include "G4EmStandardPhysics_option4.hh"
|
||||
|
||||
#include "OpNoviceDetectorConstruction.hh"
|
||||
#include "OpNoviceActionInitialization.hh"
|
||||
|
||||
#include "G4VisExecutive.hh"
|
||||
@@ -132,23 +134,21 @@ int main(int argc,char** argv)
|
||||
// Detector construction
|
||||
runManager-> SetUserInitialization(new OpNoviceDetectorConstruction());
|
||||
// Physics list
|
||||
runManager-> SetUserInitialization(new OpNovicePhysicsList());
|
||||
G4VModularPhysicsList* physicsList = new FTFP_BERT;
|
||||
physicsList->ReplacePhysics(new G4EmStandardPhysics_option4());
|
||||
G4OpticalPhysics* opticalPhysics = new G4OpticalPhysics();
|
||||
physicsList->RegisterPhysics(opticalPhysics);
|
||||
runManager-> SetUserInitialization(physicsList);
|
||||
|
||||
// User action initialization
|
||||
runManager->SetUserInitialization(new OpNoviceActionInitialization());
|
||||
|
||||
// Initialize G4 kernel
|
||||
//
|
||||
runManager->Initialize();
|
||||
|
||||
// Initialize visualization
|
||||
//
|
||||
G4VisManager* visManager = new G4VisExecutive;
|
||||
// G4VisExecutive can take a verbosity argument - see /vis/verbose guidance.
|
||||
// G4VisManager* visManager = new G4VisExecutive("Quiet");
|
||||
G4VisManager* visManager = new G4VisExecutive("Quiet");
|
||||
visManager->Initialize();
|
||||
|
||||
// Get the pointer to the User Interface manager
|
||||
//
|
||||
G4UImanager* UImanager = G4UImanager::GetUIpointer();
|
||||
|
||||
if ( macro.size() ) {
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
/control/verbose 2
|
||||
/tracking/verbose 0
|
||||
#
|
||||
/process/optical/verbose 0
|
||||
/run/initialize
|
||||
#
|
||||
/gun/particle e+
|
||||
/gun/energy 500 keV
|
||||
#
|
||||
/OpNovice/phys/verbose 0
|
||||
#
|
||||
/run/beamOn 1
|
||||
#
|
||||
/OpNovice/phys/cerenkovMaxPhotons 15 # default: 20
|
||||
/process/optical/cerenkov/setMaxPhotons 15
|
||||
#
|
||||
/run/beamOn 1
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
|
||||
############################################
|
||||
!!! WARNING - FPE detection is activated !!!
|
||||
############################################
|
||||
|
||||
**************************************************************
|
||||
Geant4 version Name: geant4-10-05-ref-06 (30-June-2019)
|
||||
Geant4 version Name: geant4-10-06-ref-00 (6-December-2019)
|
||||
Copyright : Geant4 Collaboration
|
||||
References : NIM A 506 (2003), 250-303
|
||||
: IEEE-TNS 53 (2006), 270-278
|
||||
@@ -8,6 +12,13 @@
|
||||
WWW : http://geant4.org/
|
||||
**************************************************************
|
||||
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT
|
||||
|
||||
G4VModularPhysicsList::ReplacePhysics: G4EmStandardwith type : 2 is replaces with G4EmStandard_opt4
|
||||
/tracking/verbose 0
|
||||
#
|
||||
/process/optical/verbose 0
|
||||
/run/initialize
|
||||
Water G4MaterialPropertiesTable
|
||||
0: RINDEX
|
||||
2.034e-06 1.3435
|
||||
@@ -336,22 +347,6 @@ Reflectivity LUT DAVIS - data file: /cvmfs/geant4.cern.ch/share/data/RealSurface
|
||||
-----------------
|
||||
1
|
||||
|
||||
Water Surface G4MaterialPropertiesTable
|
||||
0: RINDEX
|
||||
2.034e-06 1.35
|
||||
4.136e-06 1.4
|
||||
6: SPECULARLOBECONSTANT
|
||||
2.034e-06 0.3
|
||||
4.136e-06 0.3
|
||||
7: SPECULARSPIKECONSTANT
|
||||
2.034e-06 0.2
|
||||
4.136e-06 0.2
|
||||
8: BACKSCATTERCONSTANT
|
||||
2.034e-06 0.2
|
||||
4.136e-06 0.2
|
||||
9: GROUPVEL
|
||||
2.034e-06 211.055
|
||||
4.136e-06 203.878
|
||||
Air Surface G4MaterialPropertiesTable
|
||||
1: REFLECTIVITY
|
||||
2.034e-06 0.3
|
||||
@@ -359,313 +354,723 @@ Air Surface G4MaterialPropertiesTable
|
||||
4: EFFICIENCY
|
||||
2.034e-06 0.8
|
||||
4.136e-06 1
|
||||
|
||||
FTFP_BERT : new threshold between BERT and FTFP is over the interval
|
||||
for pions : 3 to 6 GeV
|
||||
for kaons : 3 to 6 GeV
|
||||
for proton : 3 to 6 GeV
|
||||
for neutron : 3 to 6 GeV
|
||||
|
||||
### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0
|
||||
### Birks coefficients used in run time
|
||||
Water 0.126 mm/MeV 0.0126 g/cm^2/MeV massFactor= 85.0756 effCharge= 62.0606
|
||||
AddDiscreteProcess to OpticalPhoton
|
||||
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)
|
||||
OpenGLImmediateXm (OGLIXm, OGLI)
|
||||
OpenGLStoredXm (OGLSXm, OGL, OGLS)
|
||||
OpenGLImmediateX (OGLIX, OGLIXm_FALLBACK)
|
||||
OpenGLStoredX (OGLSX, 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.
|
||||
"/vis/list" to see available colours.
|
||||
/tracking/verbose 0
|
||||
#
|
||||
/gun/particle e+
|
||||
/gun/energy 500 keV
|
||||
#
|
||||
/OpNovice/phys/verbose 0
|
||||
#
|
||||
/run/beamOn 1
|
||||
|
||||
conv: for gamma SubType=14 BuildTable=1
|
||||
Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BetheHeitler : Emin= 0 eV Emax= 80 GeV ModifiedTsai
|
||||
BetheHeitlerLPM : Emin= 80 GeV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
compt: for gamma SubType=13 BuildTable=1
|
||||
Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1
|
||||
LambdaPrime table from 1 MeV to 100 TeV in 56 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Klein-Nishina : Emin= 0 eV Emax= 100 TeV
|
||||
### === Deexcitation model UAtomDeexcitation is activated for 1 region:
|
||||
DefaultRegionForTheWorld 1 0 0
|
||||
### === Ignore cuts flag: 0
|
||||
|
||||
phot: for gamma SubType=12 BuildTable=0
|
||||
LambdaPrime table from 200 keV to 100 TeV in 61 bins
|
||||
LambdaPrime table from 200 keV to 100 TeV in 174 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PhotoElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila
|
||||
LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo
|
||||
|
||||
compt: for gamma SubType=13 BuildTable=1
|
||||
Lambda table from 100 eV to 1 MeV, 20 bins/decade, spline: 1
|
||||
LambdaPrime table from 1 MeV to 100 TeV in 160 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo
|
||||
KleinNishina : Emin= 20 MeV Emax= 100 TeV Fluo
|
||||
|
||||
conv: for gamma SubType=14 BuildTable=1
|
||||
Lambda table from 1.022 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
Rayl: for gamma SubType=11 BuildTable=1
|
||||
Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0
|
||||
LambdaPrime table from 100 keV to 100 TeV in 180 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator
|
||||
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimType: 1, latDisp: 1
|
||||
RangeFactor= 0.08, stepLimType: 2, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
|
||||
|
||||
eIoni: for e- SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MollerBhabha : Emin= 0 eV Emax= 100 TeV
|
||||
LowEnergyIoni : Emin= 0 eV Emax= 100 keV deltaVI
|
||||
MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI
|
||||
|
||||
eBrem: for e- SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/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 ModifiedTsai
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS
|
||||
|
||||
ePairProd: for e- SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 25x1001 from 0.1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ePairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for e-, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
|
||||
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimType: 1, latDisp: 1
|
||||
RangeFactor= 0.08, stepLimType: 2, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
|
||||
|
||||
eIoni: for e+ SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MollerBhabha : Emin= 0 eV Emax= 100 TeV
|
||||
PenIoni : Emin= 0 eV Emax= 100 keV
|
||||
MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI
|
||||
|
||||
eBrem: for e+ SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/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 ModifiedTsai
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS
|
||||
|
||||
ePairProd: for e+ SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 25x1001 from 0.1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ePairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
annihil: for e+, integral:1 SubType=5 BuildTable=0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eplus2gg : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for proton SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0
|
||||
CoulombScat: for e+, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
|
||||
|
||||
msc: for proton SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
hIoni: for proton SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for proton SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
hPairProd: for proton SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for proton, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
hIoni: for GenericIon SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
ionIoni: for GenericIon SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.001 mm), integ: 1, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
ParamICRU73 : Emin= 0 eV Emax= 100 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, stepLimType: 0, latDisp: 0
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
hIoni: for alpha SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
ionIoni: for alpha SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax=7.9452 MeV
|
||||
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV
|
||||
BraggIon : Emin= 0 eV Emax=7.9452 MeV deltaVI
|
||||
BetheBloch : Emin=7.9452 MeV Emax= 100 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, stepLimType: 0, latDisp: 0
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
hIoni: for anti_proton SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for anti_proton SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
hPairProd: for anti_proton SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for anti_proton, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for kaon+ SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
hIoni: for kaon+ SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax=1.05231 MeV
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
|
||||
Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for kaon+ SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
hPairProd: for kaon+ SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for kaon+, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for kaon- SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
hIoni: for kaon- SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
|
||||
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for kaon- SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
hPairProd: for kaon- SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for kaon-, integral:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of kaon+
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0, polarAngLim(deg)= 180
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1, polarAngLim(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
muIoni: for mu+ SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 200 keV
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV
|
||||
Bragg : Emin= 0 eV Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
|
||||
|
||||
muBrems: for mu+ SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
muPairProd: for mu+ SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0, polarAngLim(deg)= 180
|
||||
CoulombScat: for mu+, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1, polarAngLim(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
muIoni: for mu- SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 200 keV
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV
|
||||
ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
|
||||
|
||||
muBrems: for mu- SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
muPairProd: for mu- SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0
|
||||
CoulombScat: for mu-, integral:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of mu+
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
hIoni: for pi+ SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax=297.505 keV
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV
|
||||
Bragg : Emin= 0 eV Emax=297.505 keV deltaVI
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for pi+ SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
hPairProd: for pi+ SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for pi+, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
hIoni: for pi- SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax=297.505 keV
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV
|
||||
ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
|
||||
|
||||
========= Table of registered couples ==============================
|
||||
hBrems: for pi- SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
Index : 0 used in the geometry : Yes
|
||||
Material : 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
|
||||
hPairProd: for pi- SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
Index : 1 used in the geometry : Yes
|
||||
Material : 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
|
||||
CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of pi+
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
====================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
|
||||
G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model.
|
||||
See commands in /vis/modeling/trajectories/ for other options.
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for neutron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: neutronInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: nCapture
|
||||
Model: nRadCapture: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: nKiller
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for GenericIon
|
||||
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for He3
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: He3Inelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for alpha
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: alphaInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_He3
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_He3Inelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_alpha
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_alphaInelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_deuteron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_deuteronInelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_neutron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_neutronInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_proton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_protonInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_triton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_tritonInelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for deuteron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: dInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e+
|
||||
|
||||
Process: electronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e-
|
||||
|
||||
Process: electronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for gamma
|
||||
|
||||
Process: photonNuclear
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: PhotoNuclearXS: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon+
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: kaon+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon-
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: kaon-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for lambda
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: lambdaInelastic
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for mu+
|
||||
|
||||
Process: muonNuclear
|
||||
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for mu-
|
||||
|
||||
Process: muonNuclear
|
||||
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: muMinusCaptureAtRest
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi+
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: pi+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi-
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: pi-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for proton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: protonInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for triton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: tInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
================================================================
|
||||
=======================================================================
|
||||
====== Pre-compound/De-excitation Physics Parameters ========
|
||||
=======================================================================
|
||||
Type of pre-compound inverse x-section 3
|
||||
Pre-compound model active 1
|
||||
Pre-compound excitation low energy (MeV) 0.1
|
||||
Pre-compound excitation high energy (MeV) 30
|
||||
Type of de-excitation inverse x-section 3
|
||||
Type of de-excitation factory Evaporation+GEM
|
||||
Number of de-excitation channels 68
|
||||
Min excitation energy (keV) 0.01
|
||||
Min energy per nucleon for multifragmentation (MeV) 2e+05
|
||||
Limit excitation energy for Fermi BreakUp (MeV) 20
|
||||
Level density (1/MeV) 0.075
|
||||
Use simple level density model 1
|
||||
Use discrete excitation energy of the residual 0
|
||||
Time limit for long lived isomeres (ns) 1e+12
|
||||
Internal e- conversion flag 1
|
||||
Store e- internal conversion data 0
|
||||
Electron internal conversion ID 2
|
||||
Correlated gamma emission flag 0
|
||||
Max 2J for sampling of angular correlations 10
|
||||
Upload data before 1st event for Z < 9
|
||||
=======================================================================
|
||||
### Run 0 start.
|
||||
Number of Scintillation photons produced in this event : 76
|
||||
Number of Cerenkov photons produced in this event : 16
|
||||
number of event = 1 User=0.000000s Real=0.002422s Sys=0.000000s
|
||||
Number of Scintillation photons produced in this event : 62
|
||||
Number of Cerenkov photons produced in this event : 14
|
||||
number of event = 1 User=0.000000s Real=0.002565s Sys=0.000000s
|
||||
#
|
||||
/OpNovice/phys/cerenkovMaxPhotons 15
|
||||
/process/optical/cerenkov/setMaxPhotons 15
|
||||
#
|
||||
/run/beamOn 1
|
||||
### Run 1 start.
|
||||
Number of Scintillation photons produced in this event : 55
|
||||
Number of Scintillation photons produced in this event : 67
|
||||
Number of Cerenkov photons produced in this event : 13
|
||||
number of event = 1 User=0.000000s Real=0.000718s Sys=0.000000s
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
number of event = 1 User=0.000000s Real=0.001636s Sys=0.000000s
|
||||
|
||||
@@ -18,8 +18,8 @@ main()
|
||||
|
||||
==> define Random Number Engine and initial seed
|
||||
|
||||
G4VUserPhysicsList
|
||||
------------------
|
||||
G4Optical Physics
|
||||
-----------------
|
||||
|
||||
==> define particles; including *** G4OpticalPhoton ***
|
||||
define processes; including *** G4Cerenkov ***
|
||||
@@ -28,7 +28,7 @@ G4VUserPhysicsList
|
||||
*** G4OpRayleigh ***
|
||||
*** G4OpBoundaryProcess ***
|
||||
|
||||
==> A messenger command allows to define interactivly the
|
||||
==> A messenger command allows to define interactively the
|
||||
verbose level and the maximum number of Cerenkov photons per step
|
||||
(see for instance OpNovice.in)
|
||||
|
||||
@@ -76,8 +76,6 @@ Visualisation
|
||||
------------
|
||||
|
||||
- compile and link to generate an executable
|
||||
% cd OpNovice
|
||||
% gmake
|
||||
|
||||
This example handles the program arguments in a new way.
|
||||
It can be run with the following optional arguments:
|
||||
|
||||
@@ -45,8 +45,6 @@ class OpNoviceActionInitialization : public G4VUserActionInitialization
|
||||
|
||||
virtual void BuildForMaster() const;
|
||||
virtual void Build() const;
|
||||
|
||||
virtual G4VSteppingVerbose* InitializeSteppingVerbose() const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file OpNovice/include/OpNovicePhysicsList.hh
|
||||
/// \brief Definition of the OpNovicePhysicsList class
|
||||
//
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef OpNovicePhysicsList_h
|
||||
#define OpNovicePhysicsList_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VUserPhysicsList.hh"
|
||||
|
||||
class OpNovicePhysicsListMessenger;
|
||||
|
||||
class G4Cerenkov;
|
||||
class G4Scintillation;
|
||||
class G4OpAbsorption;
|
||||
class G4OpRayleigh;
|
||||
class G4OpMieHG;
|
||||
class G4OpBoundaryProcess;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class OpNovicePhysicsList : public G4VUserPhysicsList
|
||||
{
|
||||
public:
|
||||
|
||||
OpNovicePhysicsList();
|
||||
virtual ~OpNovicePhysicsList();
|
||||
|
||||
public:
|
||||
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
virtual void SetCuts();
|
||||
|
||||
//these methods Construct physics processes and register them
|
||||
void ConstructDecay();
|
||||
void ConstructEM();
|
||||
void ConstructOp();
|
||||
|
||||
//for the Messenger
|
||||
void SetVerbose(G4int);
|
||||
void SetNbOfPhotonsCerenkov(G4int);
|
||||
|
||||
private:
|
||||
|
||||
OpNovicePhysicsListMessenger* fMessenger;
|
||||
|
||||
static G4ThreadLocal G4int fVerboseLevel;
|
||||
static G4ThreadLocal G4int fMaxNumPhotonStep;
|
||||
|
||||
static G4ThreadLocal G4Cerenkov* fCerenkovProcess;
|
||||
static G4ThreadLocal G4Scintillation* fScintillationProcess;
|
||||
static G4ThreadLocal G4OpAbsorption* fAbsorptionProcess;
|
||||
static G4ThreadLocal G4OpRayleigh* fRayleighScatteringProcess;
|
||||
static G4ThreadLocal G4OpMieHG* fMieHGScatteringProcess;
|
||||
static G4ThreadLocal G4OpBoundaryProcess* fBoundaryProcess;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif /* OpNovicePhysicsList_h */
|
||||
@@ -1,67 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file OpNovice/include/OpNovicePhysicsListMessenger.hh
|
||||
/// \brief Definition of the OpNovicePhysicsListMessenger class
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef OpNovicePhysicsListMessenger_h
|
||||
#define OpNovicePhysicsListMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class OpNovicePhysicsList;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithAnInteger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class OpNovicePhysicsListMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
OpNovicePhysicsListMessenger(OpNovicePhysicsList* );
|
||||
virtual ~OpNovicePhysicsListMessenger();
|
||||
|
||||
virtual void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
OpNovicePhysicsList* fPhysicsList;
|
||||
|
||||
G4UIdirectory* fOpNoviceDir;
|
||||
G4UIdirectory* fPhysDir;
|
||||
G4UIcmdWithAnInteger* fVerboseCmd;
|
||||
G4UIcmdWithAnInteger* fCerenkovCmd;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -1,58 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file OpNovice/include/OpNoviceSteppingVerbose.hh
|
||||
/// \brief Definition of the OpNoviceSteppingVerbose class
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class OpNoviceSteppingVerbose;
|
||||
|
||||
#ifndef OpNoviceSteppingVerbose_h
|
||||
#define OpNoviceSteppingVerbose_h 1
|
||||
|
||||
#include "G4SteppingVerbose.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class OpNoviceSteppingVerbose : public G4SteppingVerbose
|
||||
{
|
||||
public:
|
||||
|
||||
OpNoviceSteppingVerbose();
|
||||
virtual ~OpNoviceSteppingVerbose();
|
||||
|
||||
virtual void StepInfo();
|
||||
virtual void TrackingStarted();
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -1,5 +1,7 @@
|
||||
/control/verbose 2
|
||||
/tracking/verbose 3
|
||||
/tracking/verbose 2
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
/gun/particle opticalphoton
|
||||
/gun/energy 3 eV
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
#include "OpNoviceRunAction.hh"
|
||||
#include "OpNoviceSteppingAction.hh"
|
||||
#include "OpNoviceStackingAction.hh"
|
||||
#include "OpNoviceSteppingVerbose.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -61,13 +60,3 @@ void OpNoviceActionInitialization::Build() const
|
||||
SetUserAction(new OpNoviceSteppingAction());
|
||||
SetUserAction(new OpNoviceStackingAction());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4VSteppingVerbose*
|
||||
OpNoviceActionInitialization::InitializeSteppingVerbose() const
|
||||
{
|
||||
return new OpNoviceSteppingVerbose();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -318,20 +318,20 @@ G4VPhysicalVolume* OpNoviceDetectorConstruction::Construct()
|
||||
G4double ephoton[num] = {2.034*eV, 4.136*eV};
|
||||
|
||||
//OpticalWaterSurface
|
||||
G4double refractiveIndex[num] = {1.35, 1.40};
|
||||
G4double specularLobe[num] = {0.3, 0.3};
|
||||
G4double specularSpike[num] = {0.2, 0.2};
|
||||
G4double backScatter[num] = {0.2, 0.2};
|
||||
|
||||
G4MaterialPropertiesTable* myST1 = new G4MaterialPropertiesTable();
|
||||
|
||||
myST1->AddProperty("RINDEX", ephoton, refractiveIndex, num);
|
||||
myST1->AddProperty("SPECULARLOBECONSTANT", ephoton, specularLobe, num);
|
||||
myST1->AddProperty("SPECULARSPIKECONSTANT", ephoton, specularSpike, num);
|
||||
myST1->AddProperty("BACKSCATTERCONSTANT", ephoton, backScatter, num);
|
||||
|
||||
G4cout << "Water Surface G4MaterialPropertiesTable" << G4endl;
|
||||
myST1->DumpTable();
|
||||
// if surface model is unified we can set parameters
|
||||
// G4double refractiveIndex[num] = {1.35, 1.40};
|
||||
// G4double specularLobe[num] = {0.3, 0.3};
|
||||
// G4double specularSpike[num] = {0.2, 0.2};
|
||||
// G4double backScatter[num] = {0.2, 0.2};
|
||||
//
|
||||
// G4MaterialPropertiesTable* myST1 = new G4MaterialPropertiesTable();
|
||||
// myST1->AddProperty("RINDEX", ephoton, refractiveIndex, num);
|
||||
// myST1->AddProperty("SPECULARLOBECONSTANT", ephoton, specularLobe, num);
|
||||
// myST1->AddProperty("SPECULARSPIKECONSTANT", ephoton, specularSpike, num);
|
||||
// myST1->AddProperty("BACKSCATTERCONSTANT", ephoton, backScatter, num);
|
||||
//
|
||||
// G4cout << "Water Surface G4MaterialPropertiesTable" << G4endl;
|
||||
// myST1->DumpTable();
|
||||
|
||||
// opWaterSurface->SetMaterialPropertiesTable(myST1);
|
||||
|
||||
|
||||
@@ -1,307 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file OpNovice/src/OpNovicePhysicsList.cc
|
||||
/// \brief Implementation of the OpNovicePhysicsList class
|
||||
//
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "globals.hh"
|
||||
#include "OpNovicePhysicsList.hh"
|
||||
#include "OpNovicePhysicsListMessenger.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4BosonConstructor.hh"
|
||||
#include "G4LeptonConstructor.hh"
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4Cerenkov.hh"
|
||||
#include "G4Scintillation.hh"
|
||||
#include "G4OpAbsorption.hh"
|
||||
#include "G4OpRayleigh.hh"
|
||||
#include "G4OpMieHG.hh"
|
||||
#include "G4OpBoundaryProcess.hh"
|
||||
|
||||
#include "G4LossTableManager.hh"
|
||||
#include "G4EmSaturation.hh"
|
||||
|
||||
G4ThreadLocal G4int OpNovicePhysicsList::fVerboseLevel = 1;
|
||||
G4ThreadLocal G4int OpNovicePhysicsList::fMaxNumPhotonStep = 20;
|
||||
G4ThreadLocal G4Cerenkov* OpNovicePhysicsList::fCerenkovProcess = 0;
|
||||
G4ThreadLocal G4Scintillation* OpNovicePhysicsList::fScintillationProcess = 0;
|
||||
G4ThreadLocal G4OpAbsorption* OpNovicePhysicsList::fAbsorptionProcess = 0;
|
||||
G4ThreadLocal G4OpRayleigh* OpNovicePhysicsList::fRayleighScatteringProcess = 0;
|
||||
G4ThreadLocal G4OpMieHG* OpNovicePhysicsList::fMieHGScatteringProcess = 0;
|
||||
G4ThreadLocal G4OpBoundaryProcess* OpNovicePhysicsList::fBoundaryProcess = 0;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
OpNovicePhysicsList::OpNovicePhysicsList()
|
||||
: G4VUserPhysicsList()
|
||||
{
|
||||
fMessenger = new OpNovicePhysicsListMessenger(this);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
OpNovicePhysicsList::~OpNovicePhysicsList() { delete fMessenger; }
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void OpNovicePhysicsList::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.
|
||||
|
||||
G4BosonConstructor bConstructor;
|
||||
bConstructor.ConstructParticle();
|
||||
|
||||
G4LeptonConstructor lConstructor;
|
||||
lConstructor.ConstructParticle();
|
||||
|
||||
G4MesonConstructor mConstructor;
|
||||
mConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor rConstructor;
|
||||
rConstructor.ConstructParticle();
|
||||
|
||||
G4IonConstructor iConstructor;
|
||||
iConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void OpNovicePhysicsList::ConstructProcess()
|
||||
{
|
||||
AddTransportation();
|
||||
ConstructDecay();
|
||||
ConstructEM();
|
||||
ConstructOp();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4Decay.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void OpNovicePhysicsList::ConstructDecay()
|
||||
{
|
||||
// Add Decay Process
|
||||
G4Decay* theDecayProcess = new G4Decay();
|
||||
auto particleIterator=GetParticleIterator();
|
||||
particleIterator->reset();
|
||||
while( (*particleIterator)() ){
|
||||
G4ParticleDefinition* particle = particleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
if (theDecayProcess->IsApplicable(*particle)) {
|
||||
pmanager ->AddProcess(theDecayProcess);
|
||||
// set ordering for PostStepDoIt and AtRestDoIt
|
||||
pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
|
||||
pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....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 OpNovicePhysicsList::ConstructEM()
|
||||
{
|
||||
auto particleIterator=GetParticleIterator();
|
||||
particleIterator->reset();
|
||||
while( (*particleIterator)() ){
|
||||
G4ParticleDefinition* particle = particleIterator->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, 3, 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, 3, 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, 3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction(), -1, 4, 4);
|
||||
|
||||
} else {
|
||||
if ((particle->GetPDGCharge() != 0.0) &&
|
||||
(particle->GetParticleName() != "chargedgeantino") &&
|
||||
!particle->IsShortLived()) {
|
||||
// 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 "G4Threading.hh"
|
||||
|
||||
void OpNovicePhysicsList::ConstructOp()
|
||||
{
|
||||
fCerenkovProcess = new G4Cerenkov("Cerenkov");
|
||||
fCerenkovProcess->SetMaxNumPhotonsPerStep(fMaxNumPhotonStep);
|
||||
fCerenkovProcess->SetMaxBetaChangePerStep(10.0);
|
||||
fCerenkovProcess->SetTrackSecondariesFirst(true);
|
||||
fScintillationProcess = new G4Scintillation("Scintillation");
|
||||
fScintillationProcess->SetScintillationYieldFactor(1.);
|
||||
fScintillationProcess->SetTrackSecondariesFirst(true);
|
||||
fAbsorptionProcess = new G4OpAbsorption();
|
||||
fRayleighScatteringProcess = new G4OpRayleigh();
|
||||
fMieHGScatteringProcess = new G4OpMieHG();
|
||||
fBoundaryProcess = new G4OpBoundaryProcess();
|
||||
|
||||
fCerenkovProcess->SetVerboseLevel(fVerboseLevel);
|
||||
fScintillationProcess->SetVerboseLevel(fVerboseLevel);
|
||||
fAbsorptionProcess->SetVerboseLevel(fVerboseLevel);
|
||||
fRayleighScatteringProcess->SetVerboseLevel(fVerboseLevel);
|
||||
fMieHGScatteringProcess->SetVerboseLevel(fVerboseLevel);
|
||||
fBoundaryProcess->SetVerboseLevel(fVerboseLevel);
|
||||
|
||||
// Use Birks Correction in the Scintillation process
|
||||
if(G4Threading::IsMasterThread())
|
||||
{
|
||||
G4EmSaturation* emSaturation =
|
||||
G4LossTableManager::Instance()->EmSaturation();
|
||||
fScintillationProcess->AddSaturation(emSaturation);
|
||||
}
|
||||
|
||||
auto particleIterator=GetParticleIterator();
|
||||
particleIterator->reset();
|
||||
while( (*particleIterator)() ){
|
||||
G4ParticleDefinition* particle = particleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
if (fCerenkovProcess->IsApplicable(*particle)) {
|
||||
pmanager->AddProcess(fCerenkovProcess);
|
||||
pmanager->SetProcessOrdering(fCerenkovProcess,idxPostStep);
|
||||
}
|
||||
if (fScintillationProcess->IsApplicable(*particle)) {
|
||||
pmanager->AddProcess(fScintillationProcess);
|
||||
pmanager->SetProcessOrderingToLast(fScintillationProcess, idxAtRest);
|
||||
pmanager->SetProcessOrderingToLast(fScintillationProcess, idxPostStep);
|
||||
}
|
||||
if (particleName == "opticalphoton") {
|
||||
G4cout << " AddDiscreteProcess to OpticalPhoton " << G4endl;
|
||||
pmanager->AddDiscreteProcess(fAbsorptionProcess);
|
||||
pmanager->AddDiscreteProcess(fRayleighScatteringProcess);
|
||||
pmanager->AddDiscreteProcess(fMieHGScatteringProcess);
|
||||
pmanager->AddDiscreteProcess(fBoundaryProcess);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void OpNovicePhysicsList::SetVerbose(G4int verbose)
|
||||
{
|
||||
fVerboseLevel = verbose;
|
||||
|
||||
fCerenkovProcess->SetVerboseLevel(fVerboseLevel);
|
||||
fScintillationProcess->SetVerboseLevel(fVerboseLevel);
|
||||
fAbsorptionProcess->SetVerboseLevel(fVerboseLevel);
|
||||
fRayleighScatteringProcess->SetVerboseLevel(fVerboseLevel);
|
||||
fMieHGScatteringProcess->SetVerboseLevel(fVerboseLevel);
|
||||
fBoundaryProcess->SetVerboseLevel(fVerboseLevel);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void OpNovicePhysicsList::SetNbOfPhotonsCerenkov(G4int MaxNumber)
|
||||
{
|
||||
fMaxNumPhotonStep = MaxNumber;
|
||||
|
||||
fCerenkovProcess->SetMaxNumPhotonsPerStep(fMaxNumPhotonStep);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void OpNovicePhysicsList::SetCuts()
|
||||
{
|
||||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
||||
// the default cut value for all particle types
|
||||
//
|
||||
SetCutsWithDefault();
|
||||
|
||||
if (verboseLevel>0) DumpCutValuesTable();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -1,93 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file OpNovice/src/OpNovicePhysicsListMessenger.cc
|
||||
/// \brief Implementation of the OpNovicePhysicsListMessenger class
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "OpNovicePhysicsListMessenger.hh"
|
||||
|
||||
#include "OpNovicePhysicsList.hh"
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "G4UIcmdWithAnInteger.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
OpNovicePhysicsListMessenger::
|
||||
OpNovicePhysicsListMessenger(OpNovicePhysicsList* pPhys)
|
||||
: G4UImessenger(),
|
||||
fPhysicsList(pPhys)
|
||||
{
|
||||
fOpNoviceDir = new G4UIdirectory("/OpNovice/");
|
||||
fOpNoviceDir->SetGuidance("UI commands of this example");
|
||||
|
||||
fPhysDir = new G4UIdirectory("/OpNovice/phys/");
|
||||
fPhysDir->SetGuidance("PhysicsList control");
|
||||
|
||||
fVerboseCmd = new G4UIcmdWithAnInteger("/OpNovice/phys/verbose",this);
|
||||
fVerboseCmd->SetGuidance("set verbose for physics processes");
|
||||
fVerboseCmd->SetParameterName("verbose",true);
|
||||
fVerboseCmd->SetDefaultValue(1);
|
||||
fVerboseCmd->SetRange("verbose>=0");
|
||||
fVerboseCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
|
||||
fCerenkovCmd =
|
||||
new G4UIcmdWithAnInteger("/OpNovice/phys/cerenkovMaxPhotons",this);
|
||||
fCerenkovCmd->SetGuidance("set max nb of photons per step");
|
||||
fCerenkovCmd->SetParameterName("MaxNumber",false);
|
||||
fCerenkovCmd->SetRange("MaxNumber>=0");
|
||||
fCerenkovCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
OpNovicePhysicsListMessenger::~OpNovicePhysicsListMessenger()
|
||||
{
|
||||
delete fVerboseCmd;
|
||||
delete fCerenkovCmd;
|
||||
delete fPhysDir;
|
||||
delete fOpNoviceDir;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void OpNovicePhysicsListMessenger::SetNewValue(G4UIcommand* command,
|
||||
G4String newValue)
|
||||
{
|
||||
if( command == fVerboseCmd )
|
||||
{fPhysicsList->SetVerbose(fVerboseCmd->GetNewIntValue(newValue));}
|
||||
|
||||
if( command == fCerenkovCmd )
|
||||
{fPhysicsList->
|
||||
SetNbOfPhotonsCerenkov(fCerenkovCmd->GetNewIntValue(newValue));}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -1,184 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file OpNovice/src/OpNoviceSteppingVerbose.cc
|
||||
/// \brief Implementation of the OpNoviceSteppingVerbose class
|
||||
//
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "OpNoviceSteppingVerbose.hh"
|
||||
|
||||
#include "G4SteppingManager.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
OpNoviceSteppingVerbose::OpNoviceSteppingVerbose()
|
||||
: G4SteppingVerbose()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
OpNoviceSteppingVerbose::~OpNoviceSteppingVerbose()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void OpNoviceSteppingVerbose::StepInfo()
|
||||
{
|
||||
CopyState();
|
||||
|
||||
G4int prec = G4cout.precision(3);
|
||||
|
||||
if( verboseLevel >= 1 ){
|
||||
if( verboseLevel >= 4 ) VerboseTrack();
|
||||
if( verboseLevel >= 3 ){
|
||||
G4cout << G4endl;
|
||||
G4cout << std::setw( 5) << "#Step#" << " "
|
||||
<< std::setw( 6) << "X" << " "
|
||||
<< std::setw( 6) << "Y" << " "
|
||||
<< std::setw( 6) << "Z" << " "
|
||||
<< std::setw( 9) << "KineE" << " "
|
||||
<< std::setw( 9) << "dEStep" << " "
|
||||
<< std::setw(10) << "StepLeng"
|
||||
<< std::setw(10) << "TrakLeng"
|
||||
<< std::setw(10) << "Volume" << " "
|
||||
<< std::setw(10) << "Process" << G4endl;
|
||||
}
|
||||
|
||||
G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " "
|
||||
<< std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
|
||||
<< std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
|
||||
<< std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
|
||||
<< std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
|
||||
<< std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
|
||||
<< std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length")
|
||||
<< std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length")
|
||||
<< " ";
|
||||
|
||||
// if( fStepStatus != fWorldBoundary){
|
||||
if( fTrack->GetNextVolume() != 0 ) {
|
||||
G4cout << std::setw(10) << fTrack->GetVolume()->GetName();
|
||||
} else {
|
||||
G4cout << std::setw(10) << "OutOfWorld";
|
||||
}
|
||||
|
||||
if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != 0){
|
||||
G4cout << " "
|
||||
<< std::setw(10)
|
||||
<< fStep->GetPostStepPoint()->GetProcessDefinedStep()
|
||||
->GetProcessName();
|
||||
} else {
|
||||
G4cout << " UserLimit";
|
||||
}
|
||||
|
||||
G4cout << G4endl;
|
||||
|
||||
if( verboseLevel == 2 ){
|
||||
G4int tN2ndariesTot = fN2ndariesAtRestDoIt +
|
||||
fN2ndariesAlongStepDoIt +
|
||||
fN2ndariesPostStepDoIt;
|
||||
if(tN2ndariesTot>0){
|
||||
G4cout << " :----- List of 2ndaries - "
|
||||
<< "#SpawnInStep=" << std::setw(3) << tN2ndariesTot
|
||||
<< "(Rest=" << std::setw(2) << fN2ndariesAtRestDoIt
|
||||
<< ",Along=" << std::setw(2) << fN2ndariesAlongStepDoIt
|
||||
<< ",Post=" << std::setw(2) << fN2ndariesPostStepDoIt
|
||||
<< "), "
|
||||
<< "#SpawnTotal=" << std::setw(3) << (*fSecondary).size()
|
||||
<< " ---------------"
|
||||
<< G4endl;
|
||||
|
||||
for(size_t lp1=(*fSecondary).size()-tN2ndariesTot;
|
||||
lp1<(*fSecondary).size(); lp1++){
|
||||
G4cout << " : "
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length")
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length")
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length")
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy")
|
||||
<< std::setw(10)
|
||||
<< (*fSecondary)[lp1]->GetDefinition()->GetParticleName();
|
||||
G4cout << G4endl;
|
||||
}
|
||||
|
||||
G4cout << " :-----------------------------"
|
||||
<< "----------------------------------"
|
||||
<< "-- EndOf2ndaries Info ---------------"
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
G4cout.precision(prec);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void OpNoviceSteppingVerbose::TrackingStarted()
|
||||
{
|
||||
|
||||
CopyState();
|
||||
G4int prec = G4cout.precision(3);
|
||||
if( verboseLevel > 0 ){
|
||||
|
||||
G4cout << std::setw( 5) << "Step#" << " "
|
||||
<< std::setw( 6) << "X" << " "
|
||||
<< std::setw( 6) << "Y" << " "
|
||||
<< std::setw( 6) << "Z" << " "
|
||||
<< std::setw( 9) << "KineE" << " "
|
||||
<< std::setw( 9) << "dEStep" << " "
|
||||
<< std::setw(10) << "StepLeng"
|
||||
<< std::setw(10) << "TrakLeng"
|
||||
<< std::setw(10) << "Volume" << " "
|
||||
<< std::setw(10) << "Process" << G4endl;
|
||||
|
||||
G4cout << std::setw( 5) << fTrack->GetCurrentStepNumber() << " "
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
|
||||
<< std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
|
||||
<< std::setw( 6) << G4BestUnit(fStep->GetStepLength(),"Length")
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length")
|
||||
<< " ";
|
||||
|
||||
if(fTrack->GetNextVolume()){
|
||||
G4cout << std::setw(10) << fTrack->GetVolume()->GetName();
|
||||
} else {
|
||||
G4cout << "OutOfWorld";
|
||||
}
|
||||
G4cout << " initStep" << G4endl;
|
||||
}
|
||||
G4cout.precision(prec);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -1,3 +1,14 @@
|
||||
#
|
||||
# Macro file for the initialization phase of "OpNovice.cc"
|
||||
#
|
||||
# Sets some default verbose
|
||||
# and initializes the graphic.
|
||||
#
|
||||
/control/verbose 2
|
||||
/run/verbose 2
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
# Use this open statement to create an OpenGL view:
|
||||
/vis/open OGL 600x600-0+0
|
||||
#
|
||||
|
||||
@@ -4,12 +4,9 @@
|
||||
|
||||
/*! \page ExampleOpNovice2 Example OpNovice2
|
||||
|
||||
OpNovice2
|
||||
---------
|
||||
|
||||
Investigate optical properties and parameters. Details of optical
|
||||
photon boundary interactions on a surface are recorded. Details
|
||||
of optical photon generation and transport are recorded.
|
||||
Investigate optical properties and parameters. Details of optical
|
||||
photon boundary interactions on a surface are recorded. Details
|
||||
of optical photon generation and transport are recorded.
|
||||
|
||||
|
||||
\section OpNovice2_s1 GEOMETRY DEFINITION
|
||||
@@ -20,14 +17,20 @@
|
||||
in the DetectorMessenger class.
|
||||
|
||||
Material properties may be added using the macro commands:
|
||||
# for the box:
|
||||
/opnovice2/boxProperty NAME EN1 V1 EN2 V2 [ .. ENn Vn]
|
||||
/opnovice2/boxConstProperty NAME VALUE
|
||||
# for the world:
|
||||
- for the box:
|
||||
\verbatim
|
||||
/opnovice2/boxProperty NAME EN1 V1 EN2 V2 [ .. ENn Vn]
|
||||
/opnovice2/boxConstProperty NAME VALUE
|
||||
\endverbatim
|
||||
- for the world:
|
||||
\verbatim
|
||||
/opnovice2/worldProperty NAME EN1 V1 EN2 V2 [ .. ENn Vn]
|
||||
/opnovice2/worldConstProperty NAME VALUE
|
||||
# for the surface:
|
||||
\endverbatim
|
||||
- for the surface:
|
||||
\verbatim
|
||||
/opnovice2/surfaceProperty NAME EN1 V1 EN2 V2 [ .. ENn Vn]
|
||||
\endverbatim
|
||||
|
||||
Multiple energy and value pairs may be specified for the energy-dependent
|
||||
properties.
|
||||
@@ -35,7 +38,9 @@
|
||||
Values are in Geant4 internal units. Energy is in MeV.
|
||||
|
||||
Example:
|
||||
/opnovice2/boxProperty RINDEX 0.000002 1.3 0.000005 1.32 0.000008 1.34
|
||||
\verbatim
|
||||
/opnovice2/boxProperty RINDEX 0.000002 1.3 0.000005 1.32 0.000008 1.34
|
||||
\endverbatim
|
||||
sets the refractive index of the box to 1.3 at 2 eV, 1.32 at 5 eV, and
|
||||
1.34 at 8 eV.
|
||||
|
||||
@@ -57,21 +62,29 @@
|
||||
The Visualization Manager is set in the main().
|
||||
The initialisation of the drawing is done via the commands
|
||||
/vis/... in the macro vis.mac. To get visualisation:
|
||||
> /control/execute vis.mac
|
||||
\verbatim
|
||||
> /control/execute vis.mac
|
||||
\endverbatim
|
||||
or run the program with no command line arguments:
|
||||
$ ./OpNovice2
|
||||
\verbatim
|
||||
$ ./OpNovice2
|
||||
\endverbatim
|
||||
|
||||
\section OpNovice2_s5 HOW TO START ?
|
||||
|
||||
- Execute OpNovice2 in 'batch' mode from macro files
|
||||
% OpNovice2 surface.mac
|
||||
\verbatim
|
||||
% OpNovice2 surface.mac
|
||||
\endverbatim
|
||||
|
||||
- Execute OpNovice2 in 'interactive mode' with visualization
|
||||
% OpNovice2
|
||||
....
|
||||
Idle> type your commands
|
||||
....
|
||||
Idle> exit
|
||||
\verbatim
|
||||
% OpNovice2
|
||||
....
|
||||
Idle> type your commands
|
||||
....
|
||||
Idle> exit
|
||||
\endverbatim
|
||||
|
||||
\section OpNovice2_s6 RESULTS
|
||||
|
||||
@@ -80,150 +93,41 @@
|
||||
\section OpNovice2_s7 HISTOGRAMS
|
||||
|
||||
OpNovice2 has several predefined 1D histograms :
|
||||
1 : Cerenkov spectrum
|
||||
2 : scintillation spectrum
|
||||
3 : boundary process status
|
||||
4 : X momentum dir of scattered photons with px < 0
|
||||
5 : Y momentum dir of scattered photons with px < 0
|
||||
6 : Z momentum dir of scattered photons with px < 0
|
||||
7 : X momentum dir of scattered photons with px >= 0
|
||||
8 : Y momentum dir of scattered photons with px >= 0
|
||||
9 : Z momentum dir of scattered photons with px >= 0
|
||||
10 : X momentum dir of Fresnel-refracted photons
|
||||
11 : Y momentum dir of Fresnel-refracted photons
|
||||
12 : Z momentum dir of Fresnel-refracted photons
|
||||
- 1 : Cerenkov spectrum
|
||||
- 2 : scintillation spectrum
|
||||
- 3 : boundary process status
|
||||
- 4 : X momentum dir of scattered photons with px < 0
|
||||
- 5 : Y momentum dir of scattered photons with px < 0
|
||||
- 6 : Z momentum dir of scattered photons with px < 0
|
||||
- 7 : X momentum dir of scattered photons with px >= 0
|
||||
- 8 : Y momentum dir of scattered photons with px >= 0
|
||||
- 9 : Z momentum dir of scattered photons with px >= 0
|
||||
- 10 : X momentum dir of Fresnel-refracted photons
|
||||
- 11 : Y momentum dir of Fresnel-refracted photons
|
||||
- 12 : Z momentum dir of Fresnel-refracted photons
|
||||
|
||||
Histograms 4-12 are recorded for photons scattered from the +X
|
||||
surface of the cube. Only the first interaction is recorded.
|
||||
|
||||
The histograms are managed by G4Analysis classes.
|
||||
The histos can be individually activated with the command :
|
||||
/analysis/h1/set id nbBins valMin valMax unit
|
||||
\verbatim
|
||||
/analysis/h1/set id nbBins valMin valMax unit
|
||||
\endverbatim
|
||||
where unit is the desired unit for the histo (MeV or keV, deg or mrad, etc..)
|
||||
|
||||
One can control the name of the histograms file with the command:
|
||||
/analysis/setFileName name (default opnovice2)
|
||||
\verbatim
|
||||
/analysis/setFileName name (default opnovice2)
|
||||
\endverbatim
|
||||
|
||||
It is possible to choose the format of the histogram file : root (default),
|
||||
hbook, xml, csv, by using namespace in HistoManager.hh
|
||||
|
||||
It is also possible to print selected histograms on an ascii file:
|
||||
/analysis/h1/setAscii id
|
||||
\verbatim
|
||||
/analysis/h1/setAscii id
|
||||
\endverbatim
|
||||
All selected histos will be written on a file name.ascii (default opnovice2)
|
||||
|
||||
///\file "analysis/AnaEx01/.README.txt"
|
||||
///\brief Example AnaEx01 README page
|
||||
|
||||
/*! \page ExampleAnaEx01 Example AnaEx01
|
||||
|
||||
Examples AnaEx01, AnaEx02 and AnaEx03 show the usage of histogram and tuple
|
||||
manipulations using G4Analysis, ROOT and AIDA compliant systems on the same
|
||||
scenario. All analysis manipulations (histo booking, filling, saving histos
|
||||
in a file, etc...) are located in one class : HistoManager, implementation of
|
||||
which is different in each example. All the other classes are same in all
|
||||
three examples.
|
||||
|
||||
This example shows the usage of histogram and tuple manipulations using
|
||||
G4Analysis system.
|
||||
|
||||
The example is an adaptation of examples/novice/N03. It describes a simple
|
||||
sampling calorimeter setup.
|
||||
|
||||
\section AnaEx01_s1 Detector description
|
||||
|
||||
The calorimeter is a box made of a given number of layers. A layer
|
||||
consists of an absorber plate and of a detection gap. The layer is
|
||||
replicated.
|
||||
|
||||
Six parameters define the calorimeter :
|
||||
- the material of the absorber,
|
||||
- the thickness of an absorber plate,
|
||||
- the material of the detection gap,
|
||||
- the thickness of a gap,
|
||||
- the number of layers,
|
||||
- the transverse size of the calorimeter (the input face is a square).
|
||||
|
||||
The default geometry is constructed in DetectorConstruction class,
|
||||
but all of the above parameters can be modified interactively via
|
||||
the commands defined in the DetectorMessenger class.
|
||||
|
||||
<pre>
|
||||
|<----layer 0---------->|<----layer 1---------->|<----layer 2---------->|
|
||||
| | | |
|
||||
==========================================================================
|
||||
|| | || | || | ||
|
||||
|| | || | || | ||
|
||||
beam || absorber | gap || absorber | gap || absorber | gap ||
|
||||
======> || | || | || | ||
|
||||
|| | || | || | ||
|
||||
==========================================================================
|
||||
|
||||
</pre>
|
||||
|
||||
\section AnaEx01_s2 Physics list
|
||||
|
||||
The particle's type and the physic processes which will be available
|
||||
in this example are set in the FTFP_BERT physics list.
|
||||
|
||||
\section AnaEx01_s3 Action Initialization
|
||||
|
||||
A newly introduced class, ActionInitialization,
|
||||
instantiates and registers to Geant4 kernel all user action classes
|
||||
which are defined thread-local and a run action class
|
||||
which is defined both thread-local and global.
|
||||
|
||||
The thread-local action classes are defined in
|
||||
ActionInitialization::Build()
|
||||
and the global run action class is defined in
|
||||
ActionInitialization::BuildForMaster().
|
||||
Note that ActionInitialization::Build() is also used to
|
||||
instatiate user action clasess in sequential mode.
|
||||
|
||||
\section AnaEx01_s4 An event : PrimaryGeneratorAction
|
||||
|
||||
The primary kinematic consists of a single particle which hits the
|
||||
calorimeter perpendicular to the input face. The type of the particle
|
||||
and its energy are set in the PrimaryGeneratorAction class, and can
|
||||
be changed via the G4 build-in commands of ParticleGun class.
|
||||
|
||||
|
||||
\section AnaEx01_s5 Histograms
|
||||
|
||||
AnaEx01 can produce 4 histograms :
|
||||
|
||||
- EAbs : total energy deposit in absorber per event
|
||||
- EGap : total energy deposit in gap per event
|
||||
- LAbs : total track length of charged particles in absorber per event
|
||||
- LGap : total track length of charged particles in gap per event
|
||||
|
||||
And 2 Ntuples :
|
||||
- Ntuple1:
|
||||
- one row per event : EnergyAbs EnergyGap
|
||||
- Ntuple2:
|
||||
- one row per event : TrackLAbs TrackLGap
|
||||
|
||||
These histos and ntuples are booked in HistoManager and filled from
|
||||
EventAction.
|
||||
|
||||
One can control the name of the histograms file and its format:
|
||||
- default name : AnaEx01
|
||||
The format of the histogram file can be : root (default),
|
||||
xml, csv. Include correct g4nnn.hh in HistoManager.hh
|
||||
|
||||
\section AnaEx01_s7 How to build
|
||||
|
||||
An additional step is needed when building the example with GNUmake
|
||||
due to using the extra shared directory:
|
||||
\verbatim
|
||||
% cd path_to_AnaEx01/AnaEx01
|
||||
% gmake setup
|
||||
% gmake
|
||||
\endverbatim
|
||||
|
||||
This will copy the files from shared in the example include and src;
|
||||
to remove these files:
|
||||
\verbatim
|
||||
% gmake clean_setup
|
||||
\endverbatim
|
||||
|
||||
*/
|
||||
|
||||
@@ -43,8 +43,10 @@ set(OpNovice2_SCRIPTS
|
||||
OpNovice2.out
|
||||
OpNovice2.in
|
||||
vis.mac
|
||||
surface.mac
|
||||
unified.mac
|
||||
glisur.mac
|
||||
electron.mac
|
||||
scint_by_particle.mac
|
||||
)
|
||||
|
||||
foreach(_script ${OpNovice2_SCRIPTS})
|
||||
|
||||
@@ -13,6 +13,17 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
November 26, 2019 I. Hrivnacova (OpNovice2-V10-05-02)
|
||||
- Fixed formatting in .README.txt
|
||||
|
||||
October 29, 2019 D.Sawkey (OpNovice2-V10-05-01)
|
||||
- macros: give unique analysis filenames
|
||||
|
||||
August 30, 2019 D.Sawkey (OpNovice2-V10-05-00)
|
||||
- add surface roughness and polish commands
|
||||
- record scintillation photon creation time
|
||||
- updated macros
|
||||
|
||||
October 26, 2018 D.Sawkey (OpNovice2-V10-04-07)
|
||||
- SteppingAction.cc: fix Histo in multithreaded
|
||||
- HistoManager.hh: add commented g4csv include
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
|
||||
**************************************************************
|
||||
Geant4 version Name: geant4-10-05-ref-06 (30-June-2019)
|
||||
Geant4 version Name: geant4-10-05-ref-10 [MT] (31-October-2019)
|
||||
<< in Multi-threaded mode >>
|
||||
Copyright : Geant4 Collaboration
|
||||
References : NIM A 506 (2003), 250-303
|
||||
: IEEE-TNS 53 (2006), 270-278
|
||||
@@ -8,7 +9,8 @@
|
||||
WWW : http://geant4.org/
|
||||
**************************************************************
|
||||
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT 2.0
|
||||
===== OpNovice2 is started with 4 threads =====
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT
|
||||
|
||||
G4VModularPhysicsList::ReplacePhysics: G4EmStandardwith type : 2 is replaces with G4EmStandard_opt4
|
||||
Visualization Manager instantiating with verbosity "warnings (3)"...
|
||||
@@ -25,11 +27,10 @@ RayTracer (RayTracer)
|
||||
VRML1FILE (VRML1FILE)
|
||||
VRML2FILE (VRML2FILE)
|
||||
gMocrenFile (gMocrenFile)
|
||||
OpenGLImmediateXm (OGLIXm, OGLI)
|
||||
OpenGLStoredXm (OGLSXm, OGL, OGLS)
|
||||
OpenGLImmediateX (OGLIX, OGLIXm_FALLBACK)
|
||||
OpenGLStoredX (OGLSX, OGLSXm_FALLBACK)
|
||||
RayTracerX (RayTracerX)
|
||||
OpenGLImmediateQt (OGLIQt, OGLI)
|
||||
OpenGLStoredQt (OGLSQt, OGL, OGLS)
|
||||
OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK)
|
||||
OpenGLStoredX (OGLSX, OGLSQt_FALLBACK)
|
||||
|
||||
Registering model factories...
|
||||
|
||||
@@ -169,32 +170,15 @@ The MPT for the surface is now:
|
||||
****** end of opticalSurface->DumpInfo
|
||||
|
||||
FTFP_BERT : new threshold between BERT and FTFP is over the interval
|
||||
for pions : 3 to 12 GeV
|
||||
for kaons : 3 to 12 GeV
|
||||
for proton : 3 to 12 GeV
|
||||
for neutron : 3 to 12 GeV
|
||||
for pions : 3 to 6 GeV
|
||||
for kaons : 3 to 6 GeV
|
||||
for proton : 3 to 6 GeV
|
||||
for neutron : 3 to 6 GeV
|
||||
|
||||
### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0
|
||||
### Birks coefficients used in run time
|
||||
G4_WATER 0.126 mm/MeV 0.0126 g/cm^2/MeV massFactor= 85.0756 effCharge= 62.0606
|
||||
#
|
||||
/gun/particle opticalphoton
|
||||
/gun/energy 3 eV
|
||||
/gun/position 0 0 0 cm
|
||||
/gun/direction 1 0 0
|
||||
/opnovice2/gun/optPhotonPolar
|
||||
#
|
||||
/analysis/h1/set 3 40 -1 39
|
||||
/analysis/h1/set 4 100 -1.1 1.1
|
||||
/analysis/h1/set 5 100 -1.1 1.1
|
||||
/analysis/h1/set 6 100 -1.1 1.1
|
||||
/analysis/h1/set 7 100 -1.1 1.1
|
||||
/analysis/h1/set 8 100 -1.1 1.1
|
||||
/analysis/h1/set 9 100 -1.1 1.1
|
||||
/analysis/h1/set 10 100 -1.1 1.1
|
||||
/analysis/h1/set 11 100 -1.1 1.1
|
||||
/analysis/h1/set 12 100 -1.1 1.1
|
||||
/run/beamOn 100000
|
||||
/run/physicsModified
|
||||
|
||||
### === Deexcitation model UAtomDeexcitation is activated for 1 region:
|
||||
DefaultRegionForTheWorld 1 0 0
|
||||
@@ -215,9 +199,7 @@ compt: for gamma SubType=13 BuildTable=1
|
||||
conv: for gamma SubType=14 BuildTable=1
|
||||
Lambda table from 1.022 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PenConversion : Emin= 0 eV Emax= 20 MeV
|
||||
BetheHeitler : Emin= 20 MeV Emax= 80 GeV ModifiedTsai
|
||||
BetheHeitlerLPM : Emin= 80 GeV Emax= 100 TeV ModifiedTsai
|
||||
BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
Rayl: for gamma SubType=11 BuildTable=1
|
||||
Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0
|
||||
@@ -250,13 +232,13 @@ eBrem: for e- SubType=3
|
||||
ePairProd: for e- SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 25x1001 from 0.1 GeV to 100 TeV
|
||||
Sampling table 25x1001; from 0.1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ePairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for e-, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
ThetaMin(p) < Theta(degree) < 180; pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
|
||||
|
||||
@@ -285,7 +267,7 @@ eBrem: for e+ SubType=3
|
||||
ePairProd: for e+ SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 25x1001 from 0.1 GeV to 100 TeV
|
||||
Sampling table 25x1001; from 0.1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ePairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
@@ -295,7 +277,7 @@ annihil: for e+, integral:1 SubType=5 BuildTable=0
|
||||
|
||||
CoulombScat: for e+, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
ThetaMin(p) < Theta(degree) < 180; pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
|
||||
|
||||
@@ -321,13 +303,13 @@ hBrems: for proton SubType=3
|
||||
hPairProd: for proton SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
Sampling table 17x1001; from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for proton, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
ThetaMin(p) < Theta(degree) < 180; pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
@@ -386,13 +368,13 @@ hBrems: for anti_proton SubType=3
|
||||
hPairProd: for anti_proton SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
Sampling table 17x1001; from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for anti_proton, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
ThetaMin(p) < Theta(degree) < 180; pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
@@ -418,13 +400,13 @@ hBrems: for kaon+ SubType=3
|
||||
hPairProd: for kaon+ SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
Sampling table 18x1001; from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for kaon+, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
ThetaMin(p) < Theta(degree) < 180; pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
@@ -450,13 +432,13 @@ hBrems: for kaon- SubType=3
|
||||
hPairProd: for kaon- SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
Sampling table 18x1001; from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for kaon-, integral:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of kaon+
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
ThetaMin(p) < Theta(degree) < 180; pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
@@ -483,13 +465,13 @@ muBrems: for mu+ SubType=3
|
||||
muPairProd: for mu+ SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 1 GeV to 100 TeV
|
||||
Sampling table 21x1001; from 1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for mu+, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
ThetaMin(p) < Theta(degree) < 180; pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
@@ -516,13 +498,13 @@ muBrems: for mu- SubType=3
|
||||
muPairProd: for mu- SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 1 GeV to 100 TeV
|
||||
Sampling table 21x1001; from 1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for mu-, integral:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of mu+
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
ThetaMin(p) < Theta(degree) < 180; pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
@@ -548,13 +530,13 @@ hBrems: for pi+ SubType=3
|
||||
hPairProd: for pi+ SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
Sampling table 20x1001; from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for pi+, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
ThetaMin(p) < Theta(degree) < 180; pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
@@ -580,13 +562,13 @@ hBrems: for pi- SubType=3
|
||||
hPairProd: for pi- SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
Sampling table 20x1001; from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of pi+
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
ThetaMin(p) < Theta(degree) < 180; pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
@@ -602,7 +584,7 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
|
||||
Process: neutronInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 12 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: nCapture
|
||||
@@ -615,8 +597,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Hadronic Processes for GenericIon
|
||||
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -627,8 +609,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: He3Inelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -639,8 +621,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: alphaInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -689,8 +671,9 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Hadronic Processes for anti_neutron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_neutronInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
@@ -734,8 +717,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: dInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -769,9 +752,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
|
||||
Process: kaon+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 12 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsKaonPlusInelasticXS: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon-
|
||||
@@ -782,9 +764,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
|
||||
Process: kaon-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 12 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsKaonMinusInelasticXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
@@ -797,8 +778,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
|
||||
Process: lambdaInelastic
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Cr_sctns: ChipsHyperonInelasticXS: 0 eV ---> 100 TeV
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for mu+
|
||||
@@ -820,26 +801,24 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Hadronic Processes for pi+
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: pi+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 12 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi-
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: pi-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 12 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hBertiniCaptureAtRest
|
||||
@@ -853,7 +832,7 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
|
||||
Process: protonInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 12 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -864,37 +843,174 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: tInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
================================================================
|
||||
G4WT3 > /tracking/verbose 0
|
||||
G4WT3 > /run/geometryModified
|
||||
G4WT3 > /run/geometryModified
|
||||
G4WT3 > /run/geometryModified
|
||||
G4WT3 > /run/geometryModified
|
||||
G4WT3 > /run/initialize
|
||||
G4WT3 > /run/physicsModified
|
||||
G4WT2 > /tracking/verbose 0
|
||||
G4WT1 > /tracking/verbose 0
|
||||
G4WT0 > /tracking/verbose 0
|
||||
G4WT2 > /run/geometryModified
|
||||
G4WT1 > /run/geometryModified
|
||||
G4WT2 > /run/geometryModified
|
||||
G4WT0 > /run/geometryModified
|
||||
G4WT1 > /run/geometryModified
|
||||
G4WT0 > /run/geometryModified
|
||||
G4WT2 > /run/geometryModified
|
||||
G4WT1 > /run/geometryModified
|
||||
G4WT0 > /run/geometryModified
|
||||
G4WT2 > /run/geometryModified
|
||||
G4WT1 > /run/geometryModified
|
||||
G4WT0 > /run/geometryModified
|
||||
G4WT2 > /run/initialize
|
||||
G4WT0 > /run/initialize
|
||||
G4WT2 > /run/physicsModified
|
||||
G4WT1 > /run/initialize
|
||||
G4WT0 > /run/physicsModified
|
||||
G4WT1 > /run/physicsModified
|
||||
=======================================================================
|
||||
====== Pre-compound/De-excitation Physics Parameters ========
|
||||
=======================================================================
|
||||
Type of pre-compound inverse x-section 3
|
||||
Pre-compound model active 1
|
||||
Pre-compound low energy (MeV) 0.1
|
||||
Pre-compound excitation low energy (MeV) 0.1
|
||||
Pre-compound excitation high energy (MeV) 100
|
||||
Type of de-excitation inverse x-section 3
|
||||
Type of de-excitation factory Evaporation+GEM
|
||||
Number of de-excitation channels 68
|
||||
Min excitation energy (keV) 0.01
|
||||
Min energy per nucleon for multifragmentation (MeV) 1e+05
|
||||
Min energy per nucleon for multifragmentation (MeV) 2e+05
|
||||
Limit excitation energy for Fermi BreakUp (MeV) 20
|
||||
Level density (1/MeV) 0.075
|
||||
Model of level density flag 1
|
||||
Use simple level density model 1
|
||||
Use discrete excitation energy of the residual 0
|
||||
Time limit for long lived isomeres (ns) 1e+12
|
||||
Internal e- conversion flag 1
|
||||
Store e- internal conversion data 0
|
||||
Electron internal conversion ID 2
|
||||
Correlated gamma emission flag 0
|
||||
Max 2J for sampling of angular correlations 10
|
||||
Upload data before 1st event for Z < 9
|
||||
=======================================================================
|
||||
#
|
||||
/gun/particle opticalphoton
|
||||
/gun/energy 3 eV
|
||||
/gun/position 0 0 0 cm
|
||||
/gun/direction 1 0 0
|
||||
/opnovice2/gun/optPhotonPolar
|
||||
#
|
||||
/analysis/h1/set 3 40 -1 39
|
||||
/analysis/h1/set 4 100 -1.1 1.1
|
||||
/analysis/h1/set 5 100 -1.1 1.1
|
||||
/analysis/h1/set 6 100 -1.1 1.1
|
||||
/analysis/h1/set 7 100 -1.1 1.1
|
||||
/analysis/h1/set 8 100 -1.1 1.1
|
||||
/analysis/h1/set 9 100 -1.1 1.1
|
||||
/analysis/h1/set 10 100 -1.1 1.1
|
||||
/analysis/h1/set 11 100 -1.1 1.1
|
||||
/analysis/h1/set 12 100 -1.1 1.1
|
||||
/run/beamOn 100000
|
||||
G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model.
|
||||
See commands in /vis/modeling/trajectories/ for other options.
|
||||
### Run 0 start.
|
||||
... open Root analysis file : opnovice2.root - done
|
||||
number of event = 100000 User=1.160000s Real=1.174348s Sys=0.000000s
|
||||
G4WT2 > /gun/particle opticalphoton
|
||||
G4WT3 > /gun/particle opticalphoton
|
||||
G4WT0 > /gun/particle opticalphoton
|
||||
G4WT1 > /gun/particle opticalphoton
|
||||
G4WT1 > /gun/energy 3 eV
|
||||
G4WT0 > /gun/energy 3 eV
|
||||
G4WT3 > /gun/energy 3 eV
|
||||
G4WT2 > /gun/energy 3 eV
|
||||
G4WT2 > /gun/position 0 0 0 cm
|
||||
G4WT3 > /gun/position 0 0 0 cm
|
||||
G4WT1 > /gun/position 0 0 0 cm
|
||||
G4WT0 > /gun/position 0 0 0 cm
|
||||
G4WT2 > /gun/direction 1 0 0
|
||||
G4WT3 > /gun/direction 1 0 0
|
||||
G4WT0 > /gun/direction 1 0 0
|
||||
G4WT1 > /gun/direction 1 0 0
|
||||
G4WT2 > /opnovice2/gun/optPhotonPolar
|
||||
G4WT1 > /opnovice2/gun/optPhotonPolar
|
||||
G4WT0 > /opnovice2/gun/optPhotonPolar
|
||||
G4WT3 > /opnovice2/gun/optPhotonPolar
|
||||
G4WT1 > /analysis/h1/set 3 40 -1 39
|
||||
G4WT0 > /analysis/h1/set 3 40 -1 39
|
||||
G4WT2 > /analysis/h1/set 3 40 -1 39
|
||||
G4WT3 > /analysis/h1/set 3 40 -1 39
|
||||
G4WT3 > /analysis/h1/set 4 100 -1.1 1.1
|
||||
G4WT2 > /analysis/h1/set 4 100 -1.1 1.1
|
||||
G4WT1 > /analysis/h1/set 4 100 -1.1 1.1
|
||||
G4WT0 > /analysis/h1/set 4 100 -1.1 1.1
|
||||
G4WT3 > /analysis/h1/set 5 100 -1.1 1.1
|
||||
G4WT2 > /analysis/h1/set 5 100 -1.1 1.1
|
||||
G4WT1 > /analysis/h1/set 5 100 -1.1 1.1
|
||||
G4WT0 > /analysis/h1/set 5 100 -1.1 1.1
|
||||
G4WT3 > /analysis/h1/set 6 100 -1.1 1.1
|
||||
G4WT2 > /analysis/h1/set 6 100 -1.1 1.1
|
||||
G4WT1 > /analysis/h1/set 6 100 -1.1 1.1
|
||||
G4WT0 > /analysis/h1/set 6 100 -1.1 1.1
|
||||
G4WT3 > /analysis/h1/set 7 100 -1.1 1.1
|
||||
G4WT2 > /analysis/h1/set 7 100 -1.1 1.1
|
||||
G4WT1 > /analysis/h1/set 7 100 -1.1 1.1
|
||||
G4WT0 > /analysis/h1/set 7 100 -1.1 1.1
|
||||
G4WT3 > /analysis/h1/set 8 100 -1.1 1.1
|
||||
G4WT2 > /analysis/h1/set 8 100 -1.1 1.1
|
||||
G4WT1 > /analysis/h1/set 8 100 -1.1 1.1
|
||||
G4WT0 > /analysis/h1/set 8 100 -1.1 1.1
|
||||
G4WT3 > /analysis/h1/set 9 100 -1.1 1.1
|
||||
G4WT2 > /analysis/h1/set 9 100 -1.1 1.1
|
||||
G4WT1 > /analysis/h1/set 9 100 -1.1 1.1
|
||||
G4WT0 > /analysis/h1/set 9 100 -1.1 1.1
|
||||
G4WT3 > /analysis/h1/set 10 100 -1.1 1.1
|
||||
G4WT2 > /analysis/h1/set 10 100 -1.1 1.1
|
||||
G4WT1 > /analysis/h1/set 10 100 -1.1 1.1
|
||||
G4WT0 > /analysis/h1/set 10 100 -1.1 1.1
|
||||
G4WT3 > /analysis/h1/set 11 100 -1.1 1.1
|
||||
G4WT2 > /analysis/h1/set 11 100 -1.1 1.1
|
||||
G4WT1 > /analysis/h1/set 11 100 -1.1 1.1
|
||||
G4WT0 > /analysis/h1/set 11 100 -1.1 1.1
|
||||
G4WT3 > /analysis/h1/set 12 100 -1.1 1.1
|
||||
G4WT2 > /analysis/h1/set 12 100 -1.1 1.1
|
||||
G4WT1 > /analysis/h1/set 12 100 -1.1 1.1
|
||||
G4WT0 > /analysis/h1/set 12 100 -1.1 1.1
|
||||
G4WT1 > ### Run 0 start.
|
||||
G4WT2 > ### Run 0 start.
|
||||
G4WT0 > ### Run 0 start.
|
||||
G4WT3 > ### Run 0 start.
|
||||
G4WT0 > ... open Root analysis file : opnovice2_t0.root - done
|
||||
G4WT1 > ... open Root analysis file : opnovice2_t1.root - done
|
||||
G4WT2 > ... open Root analysis file : opnovice2_t2.root - done
|
||||
G4WT3 > ... open Root analysis file : opnovice2_t3.root - done
|
||||
G4WT1 > number of event = 24806 User=11.450000s Real=2.877324s Sys=0.000000s [Cpu=397.9%]
|
||||
G4WT1 > ... merge Root all H1 : - done
|
||||
G4WT2 > number of event = 24964 User=11.480000s Real=2.886789s Sys=0.000000s [Cpu=397.7%]
|
||||
G4WT2 > ... merge Root all H1 : - done
|
||||
G4WT0 > number of event = 25122 User=11.480000s Real=2.886979s Sys=0.000000s [Cpu=397.6%]
|
||||
G4WT0 > ... merge Root all H1 : - done
|
||||
G4WT3 > number of event = 25108 User=11.480000s Real=2.886261s Sys=0.000000s [Cpu=397.7%]
|
||||
G4WT3 > ... merge Root all H1 : - done
|
||||
G4WT2 > ... write Root file : opnovice2_t2.root - done
|
||||
G4WT1 > ... write Root file : opnovice2_t1.root - done
|
||||
G4WT0 > ... write Root file : opnovice2_t0.root - done
|
||||
G4WT3 > ... write Root file : opnovice2_t3.root - done
|
||||
G4WT2 > ... close Root file : opnovice2_t2.root - done
|
||||
G4WT0 > ... close Root file : opnovice2_t0.root - done
|
||||
G4WT1 > ... close Root file : opnovice2_t1.root - done
|
||||
G4WT0 > ... delete Root empty file : opnovice2_t0.root - done
|
||||
G4WT2 > ... delete Root empty file : opnovice2_t2.root - done
|
||||
G4WT1 > ... delete Root empty file : opnovice2_t1.root - done
|
||||
G4WT3 > ... close Root file : opnovice2_t3.root - done
|
||||
G4WT3 > ... delete Root empty file : opnovice2_t3.root - done
|
||||
number of event = 100000 User=11.510000s Real=2.923037s Sys=0.000000s [Cpu=393.8%]
|
||||
|
||||
Run Summary
|
||||
---------------------------------
|
||||
@@ -907,18 +1023,18 @@ Average number of OpAbsorption per event: 0
|
||||
|
||||
Surface events (on +X surface, maximum one per photon) this run:
|
||||
# of primary particles: 100000
|
||||
OpAbsorption before surface: 76
|
||||
Total # of surface events: 99924
|
||||
OpAbsorption before surface: 74
|
||||
Total # of surface events: 99926
|
||||
Unaccounted for: 0
|
||||
|
||||
Surface events by process:
|
||||
Fresnel refraction: 46129
|
||||
Lambertian reflection: 49182
|
||||
Lobe reflection: 195
|
||||
Spike reflection: 593
|
||||
Backscattering: 2873
|
||||
Absorption: 952
|
||||
Sum: 99924
|
||||
Fresnel refraction: 45980
|
||||
Lambertian reflection: 49333
|
||||
Lobe reflection: 232
|
||||
Spike reflection: 501
|
||||
Backscattering: 2892
|
||||
Absorption: 988
|
||||
Sum: 99926
|
||||
Unaccounted for: 0
|
||||
---------------------------------
|
||||
... write Root file : opnovice2.root - done
|
||||
|
||||
@@ -92,6 +92,7 @@
|
||||
10 : X momentum dir of Fresnel-refracted photons
|
||||
11 : Y momentum dir of Fresnel-refracted photons
|
||||
12 : Z momentum dir of Fresnel-refracted photons
|
||||
13 : creation time of scintillation photons
|
||||
|
||||
Histograms 4-12 are recorded for photons scattered from the +X
|
||||
surface of the cube. Only the first interaction is recorded.
|
||||
|
||||
@@ -1,38 +1,68 @@
|
||||
/control/verbose 2
|
||||
/tracking/verbose 0
|
||||
/control/cout/ignoreThreadsExcept 0
|
||||
|
||||
/opnovice2/boxMaterial G4_PLEXIGLASS
|
||||
/opnovice2/worldMaterial G4_WATER
|
||||
/opnovice2/boxMaterial G4_BGO
|
||||
/opnovice2/worldMaterial G4_AIR
|
||||
|
||||
/opnovice2/boxProperty RAYLEIGH .000002 1 .000008 1
|
||||
/opnovice2/boxProperty RINDEX .000002 1.3 .000008 1.4
|
||||
/opnovice2/boxProperty ABSLENGTH .000002 1 .000005 2 .000008 3
|
||||
/opnovice2/boxProperty FASTCOMPONENT .000002 1.0 .000008 1.0
|
||||
/opnovice2/boxProperty SLOWCOMPONENT .000002 0.1 .000003 0.5 .000004 0.9 .000005 0.5 .000006 0.1 .000007 .5 .000008 .9
|
||||
/opnovice2/boxConstProperty FASTTIMECONSTANT 0.000000001
|
||||
/opnovice2/boxConstProperty SLOWTIMECONSTANT 0.000000001
|
||||
/opnovice2/boxProperty ABSLENGTH 0.000002 1 0.000005 2 0.000008 3
|
||||
/opnovice2/boxProperty RAYLEIGH 0.000002 1 0.000008 1
|
||||
/opnovice2/boxProperty RINDEX 0.000002 1.3 0.000008 1.4
|
||||
/opnovice2/boxProperty FASTCOMPONENT 0.000002 1.0 0.000008 1.3
|
||||
/opnovice2/boxProperty SLOWCOMPONENT 0.000002 0.1 0.000003 0.2 0.000004 0.4 0.000005 0.6 0.000006 0.8 0.000007 0.9 .000008 1.0
|
||||
|
||||
/opnovice2/boxConstProperty FASTTIMECONSTANT 20 ## ns
|
||||
/opnovice2/boxConstProperty SLOWTIMECONSTANT 100
|
||||
/opnovice2/boxConstProperty SCINTILLATIONYIELD 5000.0
|
||||
/opnovice2/boxConstProperty YIELDRATIO 0.8
|
||||
/opnovice2/boxConstProperty YIELDRATIO 0.5
|
||||
/opnovice2/boxConstProperty RESOLUTIONSCALE 1
|
||||
/opnovice2/boxConstProperty FASTSCINTILLATIONRISETIME 3
|
||||
/opnovice2/boxConstProperty SLOWSCINTILLATIONRISETIME 10
|
||||
|
||||
/opnovice2/worldProperty RINDEX 0.000002 1.01 0.000008 1.01
|
||||
/opnovice2/worldProperty ABSLENGTH 0.000002 100 0.000005 100 0.000008 100
|
||||
|
||||
/opnovice2/surfaceModel unified
|
||||
/opnovice2/surfaceType dielectric_dielectric
|
||||
/opnovice2/surfaceFinish ground
|
||||
/opnovice2/surfaceProperty REFLECTIVITY 0.000002 .2 0.000008 .2
|
||||
|
||||
/opnovice2/worldProperty RINDEX 0.000002 1.01 0.000008 1.01
|
||||
/opnovice2/worldProperty ABSLENGTH 0.000002 1000000 0.000005 2000000 0.000008 3000000
|
||||
/opnovice2/surfaceSigmaAlpha 0.2
|
||||
/opnovice2/surfaceProperty SPECULARLOBECONSTANT 0.000002 0.1 0.000008 0.1
|
||||
/opnovice2/surfaceProperty SPECULARSPIKECONSTANT 0.000002 0.1 0.000008 0.1
|
||||
/opnovice2/surfaceProperty BACKSCATTERCONSTANT 0.000002 0.1 0.000008 0.1
|
||||
|
||||
/opnovice2/surfaceProperty TRANSMITTANCE 0.000002 0.1 0.000008 0.1
|
||||
/opnovice2/surfaceProperty REFLECTIVITY 0.000002 0.8 0.000008 0.8
|
||||
/opnovice2/surfaceProperty EFFICIENCY 0.000002 0.1 0.000008 0.1
|
||||
|
||||
|
||||
/process/optical/verbose 0
|
||||
|
||||
/process/optical/cerenkov/setMaxPhotons 3
|
||||
/process/optical/cerenkov/setMaxBetaChange 10
|
||||
|
||||
/process/optical/scintillation/setExcitationRatio .5
|
||||
/process/optical/scintillation/setByParticleType false
|
||||
/process/optical/scintillation/setTrackInfo false
|
||||
/process/optical/scintillation/setFiniteRiseTime true
|
||||
/process/optical/scintillation/setStackPhotons true
|
||||
|
||||
/run/initialize
|
||||
|
||||
/analysis/h1/set 1 100 0 .000010
|
||||
/analysis/h1/set 2 100 0 .000010
|
||||
/analysis/setFileName electron
|
||||
/analysis/h1/set 1 100 0 10
|
||||
/analysis/h1/setXaxis 1 "Energy [eV]"
|
||||
/analysis/h1/setYaxis 1 "Number of photons"
|
||||
/analysis/h1/set 2 100 0 10
|
||||
/analysis/h1/setXaxis 2 "Energy [eV]"
|
||||
/analysis/h1/setYaxis 2 "Number of photons"
|
||||
/analysis/h1/set 13 400 0 200
|
||||
/analysis/h1/setXaxis 13 "Creation time [ns]"
|
||||
/analysis/h1/setYaxis 13 "Number of photons"
|
||||
|
||||
|
||||
#
|
||||
/gun/particle e-
|
||||
/gun/energy 500 keV
|
||||
/gun/energy 1 MeV
|
||||
/gun/position -1 0 0 m
|
||||
/gun/direction 1 0 0
|
||||
#
|
||||
/run/printProgress 100
|
||||
/run/beamOn 1000
|
||||
/run/beamOn 100
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
/control/verbose 2
|
||||
/tracking/verbose 0
|
||||
/control/cout/ignoreThreadsExcept 0
|
||||
|
||||
/opnovice2/boxProperty RINDEX 0.000002 1.3 0.000008 1.4
|
||||
/opnovice2/boxProperty ABSLENGTH 0.000002 10000 0.000005 20000 0.000008 30000
|
||||
|
||||
/opnovice2/worldProperty RINDEX 0.000002 1.01 0.000008 1.01
|
||||
/opnovice2/worldProperty ABSLENGTH 0.000002 1000 0.000005 2000 0.000008 3000
|
||||
|
||||
/opnovice2/surfaceModel glisur
|
||||
/opnovice2/surfaceType dielectric_dielectric
|
||||
|
||||
/opnovice2/surfaceProperty SPECULARLOBECONSTANT 0.000002 0.1 0.000008 0.1
|
||||
/opnovice2/surfaceProperty SPECULARSPIKECONSTANT 0.000002 0.1 0.000008 0.1
|
||||
/opnovice2/surfaceProperty BACKSCATTERCONSTANT 0.000002 0.1 0.000008 0.1
|
||||
|
||||
/opnovice2/surfaceProperty TRANSMITTANCE 0.000002 0.1 0.000008 0.1
|
||||
/opnovice2/surfaceProperty REFLECTIVITY 0.000002 0.8 0.000008 0.8
|
||||
/opnovice2/surfaceProperty EFFICIENCY 0.000002 0.05 0.000008 0.05
|
||||
|
||||
/run/initialize
|
||||
#
|
||||
/gun/particle opticalphoton
|
||||
/gun/energy 3 eV
|
||||
/gun/position 0 0 0 cm
|
||||
/gun/direction .9 0.1 0.1
|
||||
/opnovice2/gun/optPhotonPolar
|
||||
#
|
||||
/analysis/setFileName glisur
|
||||
/analysis/h1/set 3 40 -1 39
|
||||
/analysis/h1/set 4 100 -1.1 1.1
|
||||
/analysis/h1/set 5 100 -1.1 1.1
|
||||
/analysis/h1/set 6 100 -1.1 1.1
|
||||
/analysis/h1/set 7 100 -1.1 1.1
|
||||
/analysis/h1/set 8 100 -1.1 1.1
|
||||
/analysis/h1/set 9 100 -1.1 1.1
|
||||
/analysis/h1/set 10 100 -1.1 1.1
|
||||
/analysis/h1/set 11 100 -1.1 1.1
|
||||
/analysis/h1/set 12 100 -1.1 1.1
|
||||
|
||||
############################# polished ########################################
|
||||
|
||||
/opnovice2/surfaceFinish polished
|
||||
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
|
||||
/opnovice2/surfaceConstProperty SURFACEROUGHNESS 0.01
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
/opnovice2/surfaceConstProperty SURFACEROUGHNESS 0.0
|
||||
|
||||
############################# ground ##########################################
|
||||
|
||||
/opnovice2/surfaceFinish ground
|
||||
/run/initialize
|
||||
/opnovice2/surfacePolish 0.2
|
||||
/run/beamOn 10000
|
||||
/opnovice2/surfacePolish 1.0
|
||||
|
||||
############################# painted #########################################
|
||||
|
||||
/opnovice2/surfaceFinish polishedfrontpainted
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
|
||||
/opnovice2/surfaceFinish polishedbackpainted
|
||||
/opnovice2/surfaceProperty RINDEX 0.000002 1.4 0.000008 1.5
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
|
||||
/opnovice2/surfaceFinish groundfrontpainted
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
|
||||
/opnovice2/surfaceFinish groundbackpainted
|
||||
/opnovice2/surfacePolish 0.2
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
/opnovice2/surfacePolish 1.0
|
||||
|
||||
############################# dielectric_metal ################################
|
||||
|
||||
/opnovice2/surfaceType dielectric_metal
|
||||
/opnovice2/surfaceFinish polished
|
||||
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
|
||||
/opnovice2/surfaceFinish ground
|
||||
/run/initialize
|
||||
/opnovice2/surfacePolish 0.2
|
||||
/run/beamOn 10000
|
||||
@@ -67,7 +67,7 @@ class DetectorConstruction : public G4VUserDetectorConstruction
|
||||
fSurface->SetType(type);
|
||||
G4RunManager::GetRunManager()->GeometryHasBeenModified();
|
||||
}
|
||||
|
||||
|
||||
void SetSurfaceModel(const G4OpticalSurfaceModel model) {
|
||||
fSurface->SetModel(model);
|
||||
G4RunManager::GetRunManager()->GeometryHasBeenModified();
|
||||
@@ -76,18 +76,20 @@ class DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{return fSurface->GetModel();}
|
||||
|
||||
void SetSurfaceSigmaAlpha(G4double v);
|
||||
void SetSurfacePolish(G4double v);
|
||||
|
||||
void AddTankMPV(const char* c, G4MaterialPropertyVector* mpv);
|
||||
void AddTankMPCV(const char* c, G4double v);
|
||||
void AddTankMPC(const char* c, G4double v);
|
||||
G4MaterialPropertiesTable* GetTankMaterialPropertiesTable()
|
||||
{return fTankMPT;}
|
||||
|
||||
void AddWorldMPV(const char* c, G4MaterialPropertyVector* mpv);
|
||||
void AddWorldMPCV(const char* c, G4double v);
|
||||
void AddWorldMPC(const char* c, G4double v);
|
||||
G4MaterialPropertiesTable* GetWorldMaterialPropertiesTable()
|
||||
{return fWorldMPT;}
|
||||
|
||||
void AddSurfaceMPV(const char* c, G4MaterialPropertyVector* mpv);
|
||||
void AddSurfaceMPC(const char* c, G4double v);
|
||||
G4MaterialPropertiesTable* GetSurfaceMaterialPropertiesTable()
|
||||
{return fSurfaceMPT;}
|
||||
|
||||
|
||||
@@ -50,33 +50,35 @@ class G4UIcmdWithoutParameter;
|
||||
class DetectorMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
DetectorMessenger(DetectorConstruction* );
|
||||
~DetectorMessenger();
|
||||
|
||||
|
||||
virtual void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
|
||||
|
||||
DetectorConstruction* fDetector;
|
||||
|
||||
|
||||
G4UIdirectory* fOpticalDir;
|
||||
|
||||
|
||||
// the surface
|
||||
G4UIcmdWithAString* fSurfaceTypeCmd;
|
||||
G4UIcmdWithAString* fSurfaceFinishCmd;
|
||||
G4UIcmdWithAString* fSurfaceModelCmd;
|
||||
G4UIcmdWithADouble* fSurfaceSigmaAlphaCmd;
|
||||
G4UIcmdWithADouble* fSurfacePolishCmd;
|
||||
G4UIcmdWithAString* fSurfaceMatPropVectorCmd;
|
||||
G4UIcmdWithAString* fSurfaceMatPropConstCmd;
|
||||
|
||||
// the box
|
||||
// the box
|
||||
G4UIcmdWithAString* fTankMatPropVectorCmd;
|
||||
G4UIcmdWithAString* fTankMatConstPropVectorCmd;
|
||||
G4UIcmdWithAString* fTankMatPropConstCmd;
|
||||
G4UIcmdWithAString* fTankMaterialCmd;
|
||||
|
||||
// the world
|
||||
G4UIcmdWithAString* fWorldMatPropVectorCmd;
|
||||
G4UIcmdWithAString* fWorldMatConstPropVectorCmd;
|
||||
G4UIcmdWithAString* fWorldMatPropConstCmd;
|
||||
G4UIcmdWithAString* fWorldMaterialCmd;
|
||||
|
||||
};
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
/control/verbose 2
|
||||
/tracking/verbose 0
|
||||
/control/cout/ignoreThreadsExcept 0
|
||||
|
||||
/opnovice2/boxMaterial G4_BGO
|
||||
/opnovice2/worldMaterial G4_AIR
|
||||
|
||||
/opnovice2/boxProperty RINDEX 0.000002 1.3 0.000008 1.4
|
||||
/opnovice2/boxProperty ABSLENGTH 0.000002 1 0.000005 2 0.000008 3
|
||||
/opnovice2/boxProperty FASTCOMPONENT 0.000002 1.0 0.000008 1.3
|
||||
/opnovice2/boxConstProperty FASTTIMECONSTANT 20 ## ns
|
||||
/opnovice2/boxConstProperty RESOLUTIONSCALE 1
|
||||
/opnovice2/boxProperty SCINTILLATIONYIELD 5000.
|
||||
/opnovice2/boxProperty PROTONSCINTILLATIONYIELD 0 50 10 5000
|
||||
/opnovice2/boxProperty DEUTERONSCINTILLATIONYIELD 0 50 10 5000
|
||||
/opnovice2/boxProperty TRITONSCINTILLATIONYIELD 0 50 10 5000
|
||||
/opnovice2/boxProperty ALPHASCINTILLATIONYIELD 0 50 10 50000
|
||||
/opnovice2/boxProperty IONSCINTILLATIONYIELD 0 50 10 5000
|
||||
/opnovice2/boxProperty ELECTRONSCINTILLATIONYIELD 0 5000 10 500000
|
||||
|
||||
/opnovice2/worldProperty RINDEX 0.000002 1.01 0.000008 1.01
|
||||
/opnovice2/worldProperty ABSLENGTH 0.000002 100 0.000005 100 0.000008 100
|
||||
|
||||
/process/optical/processActivation Cerenkov false
|
||||
/process/optical/processActivation OpAbsorption true
|
||||
/process/optical/processActivation OpBoundary false
|
||||
/process/optical/processActivation Scintillation true
|
||||
/process/optical/processActivation OpRayleigh false
|
||||
/process/optical/processActivation OpMieHG false
|
||||
/process/optical/processActivation OpWLS false
|
||||
|
||||
/process/optical/verbose 0
|
||||
|
||||
/process/optical/scintillation/setYieldFactor 10
|
||||
/process/optical/scintillation/setExcitationRatio .5
|
||||
/process/optical/scintillation/setByParticleType true
|
||||
/process/optical/scintillation/setTrackInfo false
|
||||
/process/optical/scintillation/setFiniteRiseTime false
|
||||
/process/optical/scintillation/setStackPhotons true
|
||||
|
||||
/process/optical/scintillation/setTrackSecondariesFirst true
|
||||
|
||||
/run/initialize
|
||||
|
||||
/process/optical/scintillation/verbose 0
|
||||
|
||||
/analysis/setFileName scint_by_particle
|
||||
/analysis/h1/set 2 100 0 10
|
||||
/analysis/h1/setXaxis 2 "Energy [eV]"
|
||||
/analysis/h1/setYaxis 2 "Number of photons"
|
||||
/analysis/h1/set 13 400 0 200
|
||||
/analysis/h1/setXaxis 13 "Creation time [ns]"
|
||||
/analysis/h1/setYaxis 13 "Number of photons"
|
||||
|
||||
#
|
||||
/gun/particle e-
|
||||
/gun/energy 1 MeV
|
||||
/gun/position -1 0 0 m
|
||||
/gun/direction 1 0 0
|
||||
#
|
||||
/run/beamOn 100
|
||||
|
||||
/gun/particle proton
|
||||
/run/beamOn 100
|
||||
|
||||
/gun/particle alpha
|
||||
/run/beamOn 100
|
||||
|
||||
/gun/particle deuteron
|
||||
/run/beamOn 100
|
||||
|
||||
/gun/particle ion
|
||||
/gun/ion 6 12 6
|
||||
/run/beamOn 100
|
||||
@@ -66,7 +66,7 @@ DetectorConstruction::DetectorConstruction()
|
||||
fSurface->SetFinish(ground);
|
||||
fSurface->SetModel(unified);
|
||||
fSurface->SetMaterialPropertiesTable(fSurfaceMPT);
|
||||
|
||||
|
||||
fTank_LV = nullptr;
|
||||
fWorld_LV = nullptr;
|
||||
|
||||
@@ -136,10 +136,18 @@ void DetectorConstruction::SetSurfaceSigmaAlpha(G4double v) {
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void DetectorConstruction::SetSurfacePolish(G4double v) {
|
||||
fSurface->SetPolish(v);
|
||||
G4RunManager::GetRunManager()->GeometryHasBeenModified();
|
||||
|
||||
G4cout << "Surface polish set to: " << fSurface->GetPolish()
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void DetectorConstruction::AddTankMPV(const char* c,
|
||||
G4MaterialPropertyVector* mpv) {
|
||||
mpv->SetSpline(true);
|
||||
fTankMPT->AddProperty(c, mpv);
|
||||
G4cout << "The MPT for the box is now: " << G4endl;
|
||||
fTankMPT->DumpTable();
|
||||
@@ -149,7 +157,6 @@ void DetectorConstruction::AddTankMPV(const char* c,
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void DetectorConstruction::AddWorldMPV(const char* c,
|
||||
G4MaterialPropertyVector* mpv) {
|
||||
mpv->SetSpline(true);
|
||||
fWorldMPT->AddProperty(c, mpv);
|
||||
G4cout << "The MPT for the world is now: " << G4endl;
|
||||
fWorldMPT->DumpTable();
|
||||
@@ -159,7 +166,6 @@ void DetectorConstruction::AddWorldMPV(const char* c,
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void DetectorConstruction::AddSurfaceMPV(const char* c,
|
||||
G4MaterialPropertyVector* mpv) {
|
||||
mpv->SetSpline(true);
|
||||
fSurfaceMPT->AddProperty(c, mpv);
|
||||
G4cout << "The MPT for the surface is now: " << G4endl;
|
||||
fSurfaceMPT->DumpTable();
|
||||
@@ -167,7 +173,7 @@ void DetectorConstruction::AddSurfaceMPV(const char* c,
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void DetectorConstruction::AddTankMPCV(const char* c, G4double v) {
|
||||
void DetectorConstruction::AddTankMPC(const char* c, G4double v) {
|
||||
fTankMPT->AddConstProperty(c, v);
|
||||
G4cout << "The MPT for the box is now: " << G4endl;
|
||||
fTankMPT->DumpTable();
|
||||
@@ -175,12 +181,19 @@ void DetectorConstruction::AddTankMPCV(const char* c, G4double v) {
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void DetectorConstruction::AddWorldMPCV(const char* c, G4double v) {
|
||||
void DetectorConstruction::AddWorldMPC(const char* c, G4double v) {
|
||||
fWorldMPT->AddConstProperty(c, v);
|
||||
G4cout << "The MPT for the world is now: " << G4endl;
|
||||
fWorldMPT->DumpTable();
|
||||
G4cout << "............." << G4endl;
|
||||
}
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void DetectorConstruction::AddSurfaceMPC(const char* c, G4double v) {
|
||||
fSurfaceMPT->AddConstProperty(c, v);
|
||||
G4cout << "The MPT for the surface is now: " << G4endl;
|
||||
fSurfaceMPT->DumpTable();
|
||||
G4cout << "............." << G4endl;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void DetectorConstruction::SetWorldMaterial(const G4String& mat) {
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
DetectorMessenger::DetectorMessenger(DetectorConstruction * Det)
|
||||
:G4UImessenger(),fDetector(Det)
|
||||
{
|
||||
{
|
||||
fOpticalDir = new G4UIdirectory("/opnovice2/");
|
||||
fOpticalDir->SetGuidance("Parameters for optical simulation.");
|
||||
|
||||
@@ -59,18 +59,18 @@ DetectorMessenger::DetectorMessenger(DetectorConstruction * Det)
|
||||
fSurfaceTypeCmd->SetGuidance("Surface type.");
|
||||
fSurfaceTypeCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
fSurfaceTypeCmd->SetToBeBroadcasted(false);
|
||||
|
||||
|
||||
fSurfaceFinishCmd = new G4UIcmdWithAString("/opnovice2/surfaceFinish", this);
|
||||
fSurfaceFinishCmd->SetGuidance("Surface finish.");
|
||||
fSurfaceFinishCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
fSurfaceFinishCmd->SetToBeBroadcasted(false);
|
||||
|
||||
|
||||
fSurfaceModelCmd =
|
||||
new G4UIcmdWithAString("/opnovice2/surfaceModel", this);
|
||||
fSurfaceModelCmd->SetGuidance("surface model.");
|
||||
fSurfaceModelCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
fSurfaceModelCmd->SetToBeBroadcasted(false);
|
||||
|
||||
|
||||
fSurfaceSigmaAlphaCmd =
|
||||
new G4UIcmdWithADouble("/opnovice2/surfaceSigmaAlpha", this);
|
||||
fSurfaceSigmaAlphaCmd->SetGuidance("surface sigma alpha");
|
||||
@@ -78,6 +78,13 @@ DetectorMessenger::DetectorMessenger(DetectorConstruction * Det)
|
||||
fSurfaceSigmaAlphaCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
fSurfaceSigmaAlphaCmd->SetToBeBroadcasted(false);
|
||||
|
||||
fSurfacePolishCmd =
|
||||
new G4UIcmdWithADouble("/opnovice2/surfacePolish", this);
|
||||
fSurfacePolishCmd->SetGuidance("surface polish");
|
||||
fSurfacePolishCmd->SetGuidance(" parameter (for Glisur model).");
|
||||
fSurfacePolishCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
fSurfacePolishCmd->SetToBeBroadcasted(false);
|
||||
|
||||
fSurfaceMatPropVectorCmd =
|
||||
new G4UIcmdWithAString("/opnovice2/surfaceProperty", this);
|
||||
fSurfaceMatPropVectorCmd->SetGuidance("Set material property vector");
|
||||
@@ -85,6 +92,13 @@ DetectorMessenger::DetectorMessenger(DetectorConstruction * Det)
|
||||
fSurfaceMatPropVectorCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
fSurfaceMatPropVectorCmd->SetToBeBroadcasted(false);
|
||||
|
||||
fSurfaceMatPropConstCmd =
|
||||
new G4UIcmdWithAString("/opnovice2/surfaceConstProperty", this);
|
||||
fSurfaceMatPropConstCmd->SetGuidance("Set material constant property");
|
||||
fSurfaceMatPropConstCmd->SetGuidance(" for the surface.");
|
||||
fSurfaceMatPropConstCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
fSurfaceMatPropConstCmd->SetToBeBroadcasted(false);
|
||||
|
||||
fTankMatPropVectorCmd =
|
||||
new G4UIcmdWithAString("/opnovice2/boxProperty", this);
|
||||
fTankMatPropVectorCmd->SetGuidance("Set material property vector for ");
|
||||
@@ -92,12 +106,12 @@ DetectorMessenger::DetectorMessenger(DetectorConstruction * Det)
|
||||
fTankMatPropVectorCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
fTankMatPropVectorCmd->SetToBeBroadcasted(false);
|
||||
|
||||
fTankMatConstPropVectorCmd =
|
||||
fTankMatPropConstCmd =
|
||||
new G4UIcmdWithAString("/opnovice2/boxConstProperty", this);
|
||||
fTankMatConstPropVectorCmd->SetGuidance("Set material constant property ");
|
||||
fTankMatConstPropVectorCmd->SetGuidance("for the box.");
|
||||
fTankMatConstPropVectorCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
fTankMatConstPropVectorCmd->SetToBeBroadcasted(false);
|
||||
fTankMatPropConstCmd->SetGuidance("Set material constant property ");
|
||||
fTankMatPropConstCmd->SetGuidance("for the box.");
|
||||
fTankMatPropConstCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
fTankMatPropConstCmd->SetToBeBroadcasted(false);
|
||||
|
||||
fTankMaterialCmd = new G4UIcmdWithAString("/opnovice2/boxMaterial", this);
|
||||
fTankMaterialCmd->SetGuidance("Set material of box.");
|
||||
@@ -111,13 +125,13 @@ DetectorMessenger::DetectorMessenger(DetectorConstruction * Det)
|
||||
fWorldMatPropVectorCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
fWorldMatPropVectorCmd->SetToBeBroadcasted(false);
|
||||
|
||||
fWorldMatConstPropVectorCmd =
|
||||
fWorldMatPropConstCmd =
|
||||
new G4UIcmdWithAString("/opnovice2/worldConstProperty", this);
|
||||
fWorldMatConstPropVectorCmd->SetGuidance("Set material constant property");
|
||||
fWorldMatConstPropVectorCmd->SetGuidance(" for the world.");
|
||||
fWorldMatConstPropVectorCmd->
|
||||
fWorldMatPropConstCmd->SetGuidance("Set material constant property");
|
||||
fWorldMatPropConstCmd->SetGuidance(" for the world.");
|
||||
fWorldMatPropConstCmd->
|
||||
AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
fWorldMatConstPropVectorCmd->SetToBeBroadcasted(false);
|
||||
fWorldMatPropConstCmd->SetToBeBroadcasted(false);
|
||||
|
||||
fWorldMaterialCmd = new G4UIcmdWithAString("/opnovice2/worldMaterial", this);
|
||||
fWorldMaterialCmd->SetGuidance("Set material of world.");
|
||||
@@ -134,12 +148,14 @@ DetectorMessenger::~DetectorMessenger()
|
||||
delete fSurfaceTypeCmd;
|
||||
delete fSurfaceModelCmd;
|
||||
delete fSurfaceSigmaAlphaCmd;
|
||||
delete fSurfacePolishCmd;
|
||||
delete fSurfaceMatPropVectorCmd;
|
||||
delete fSurfaceMatPropConstCmd;
|
||||
delete fTankMatPropVectorCmd;
|
||||
delete fTankMatConstPropVectorCmd;
|
||||
delete fTankMatPropConstCmd;
|
||||
delete fTankMaterialCmd;
|
||||
delete fWorldMatPropVectorCmd;
|
||||
delete fWorldMatConstPropVectorCmd;
|
||||
delete fWorldMatPropConstCmd;
|
||||
delete fWorldMaterialCmd;
|
||||
}
|
||||
|
||||
@@ -323,13 +339,16 @@ void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
|
||||
fDetector->SetSurfaceSigmaAlpha(
|
||||
G4UIcmdWithADouble::GetNewDoubleValue(newValue));
|
||||
}
|
||||
else if (command == fSurfacePolishCmd) {
|
||||
fDetector->SetSurfacePolish(
|
||||
G4UIcmdWithADouble::GetNewDoubleValue(newValue));
|
||||
}
|
||||
else if (command == fTankMatPropVectorCmd) {
|
||||
// got a string. need to convert it to physics vector.
|
||||
// string format is property name, then pairs of energy, value
|
||||
// string format is property name, then pairs of energy, value
|
||||
// specify units for each value, eg 3.0*eV
|
||||
// space delimited
|
||||
G4MaterialPropertyVector* mpv = new G4MaterialPropertyVector();
|
||||
mpv->SetSpline(true);
|
||||
std::istringstream instring(newValue);
|
||||
G4String prop;
|
||||
instring >> prop;
|
||||
@@ -342,14 +361,14 @@ void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
|
||||
G4double val;
|
||||
val = G4UIcommand::ConvertToDouble(tmp);
|
||||
mpv->InsertValues(en, val);
|
||||
}
|
||||
}
|
||||
const char* c = prop.c_str();
|
||||
|
||||
fDetector->AddTankMPV(c, mpv);
|
||||
}
|
||||
else if (command == fWorldMatPropVectorCmd) {
|
||||
// Convert string to physics vector
|
||||
// string format is property name, then pairs of energy, value
|
||||
// string format is property name, then pairs of energy, value
|
||||
G4MaterialPropertyVector* mpv = new G4MaterialPropertyVector();
|
||||
std::istringstream instring(newValue);
|
||||
G4String prop;
|
||||
@@ -390,7 +409,7 @@ void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
|
||||
fDetector->AddSurfaceMPV(c, mpv);
|
||||
}
|
||||
|
||||
else if (command == fTankMatConstPropVectorCmd) {
|
||||
else if (command == fTankMatPropConstCmd) {
|
||||
// Convert string to physics vector
|
||||
// string format is property name, then value
|
||||
// space delimited
|
||||
@@ -401,9 +420,9 @@ void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
|
||||
instring >> tmp;
|
||||
G4double val = G4UIcommand::ConvertToDouble(tmp);
|
||||
const char* c = prop.c_str();
|
||||
fDetector->AddTankMPCV(c, val);
|
||||
fDetector->AddTankMPC(c, val);
|
||||
}
|
||||
else if (command == fWorldMatConstPropVectorCmd) {
|
||||
else if (command == fWorldMatPropConstCmd) {
|
||||
// Convert string to physics vector
|
||||
// string format is property name, then value
|
||||
// space delimited
|
||||
@@ -414,9 +433,22 @@ void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
|
||||
instring >> tmp;
|
||||
G4double val = G4UIcommand::ConvertToDouble(tmp);
|
||||
const char* c = prop.c_str();
|
||||
fDetector->AddTankMPCV(c, val);
|
||||
fDetector->AddTankMPC(c, val);
|
||||
}
|
||||
else if (command == fWorldMaterialCmd) {
|
||||
else if (command == fSurfaceMatPropConstCmd) {
|
||||
// Convert string to physics vector
|
||||
// string format is property name, then value
|
||||
// space delimited
|
||||
std::istringstream instring(newValue);
|
||||
G4String prop;
|
||||
G4String tmp;
|
||||
instring >> prop;
|
||||
instring >> tmp;
|
||||
G4double val = G4UIcommand::ConvertToDouble(tmp);
|
||||
const char* c = prop.c_str();
|
||||
fDetector->AddSurfaceMPC(c, val);
|
||||
}
|
||||
else if (command == fWorldMaterialCmd) {
|
||||
fDetector->SetWorldMaterial(newValue);
|
||||
}
|
||||
else if (command == fTankMaterialCmd) {
|
||||
|
||||
@@ -62,9 +62,9 @@ void HistoManager::Book()
|
||||
analysisManager->SetActivation(true); // enable inactivation of histograms
|
||||
|
||||
// Define histogram indices, titles
|
||||
G4int maxHisto = 12;
|
||||
G4int maxHisto = 13;
|
||||
G4String id[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||||
"10","11","12" };
|
||||
"10","11","12","13" };
|
||||
|
||||
G4String title[] = {
|
||||
"dummy", // 0
|
||||
@@ -80,6 +80,7 @@ void HistoManager::Book()
|
||||
"X momentum dir of Fresnel-refracted photons", //10
|
||||
"Y momentum dir of Fresnel-refracted photons", //11
|
||||
"Z momentum dir of Fresnel-refracted photons", //12
|
||||
"scintillation photons creation time", //13
|
||||
};
|
||||
|
||||
// Default values (to be reset via /analysis/h1/set command)
|
||||
|
||||
@@ -306,14 +306,17 @@ void SteppingAction::UserSteppingAction(const G4Step* step)
|
||||
G4double en = sec->GetKineticEnergy();
|
||||
run->AddCerenkovEnergy(en);
|
||||
run->AddCerenkov();
|
||||
G4AnalysisManager::Instance()->FillH1(1, en);
|
||||
G4AnalysisManager::Instance()->FillH1(1, en/eV);
|
||||
}
|
||||
else if (sec->GetCreatorProcess()
|
||||
->GetProcessName().compare("Scintillation") == 0) {
|
||||
G4double en = sec->GetKineticEnergy();
|
||||
run->AddScintillationEnergy(en);
|
||||
run->AddScintillation();
|
||||
G4AnalysisManager::Instance()->FillH1(2, en);
|
||||
G4AnalysisManager::Instance()->FillH1(2, en/eV);
|
||||
|
||||
G4double time = sec->GetGlobalTime();
|
||||
analysisMan->FillH1(13, time/ns);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
/control/verbose 2
|
||||
/tracking/verbose 0
|
||||
|
||||
/opnovice2/boxProperty RINDEX 0.000002 1.3 0.000008 1.4
|
||||
/opnovice2/boxProperty ABSLENGTH 0.000002 1000000 0.000005 2000000 0.000008 3000000
|
||||
|
||||
/opnovice2/worldProperty RINDEX 0.000002 1.01 0.000008 1.01
|
||||
/opnovice2/worldProperty ABSLENGTH 0.000002 1000000 0.000005 2000000 0.000008 3000000
|
||||
|
||||
/opnovice2/surfaceModel unified
|
||||
/opnovice2/surfaceType dielectric_dielectric
|
||||
/opnovice2/surfaceFinish ground
|
||||
/opnovice2/surfaceSigmaAlpha 1.1
|
||||
/opnovice2/surfaceProperty SPECULARLOBECONSTANT 0.000002 .1 0.000008 .1
|
||||
/opnovice2/surfaceProperty SPECULARSPIKECONSTANT 0.000002 .01 0.000008 .01
|
||||
/opnovice2/surfaceProperty BACKSCATTERCONSTANT 0.000002 .05 0.000008 .05
|
||||
/opnovice2/surfaceProperty REFLECTIVITY 0.000002 .99 0.000008 .99
|
||||
|
||||
/run/initialize
|
||||
#
|
||||
/gun/particle opticalphoton
|
||||
/gun/energy 3 eV
|
||||
/gun/position 0 0 0 cm
|
||||
/gun/direction 1 0 0
|
||||
/opnovice2/gun/optPhotonPolar
|
||||
#
|
||||
|
||||
/analysis/h1/set 3 40 -1 39
|
||||
/analysis/h1/set 4 100 -1.1 1.1
|
||||
/analysis/h1/set 5 100 -1.1 1.1
|
||||
/analysis/h1/set 6 100 -1.1 1.1
|
||||
/analysis/h1/set 7 100 -1.1 1.1
|
||||
/analysis/h1/set 8 100 -1.1 1.1
|
||||
/analysis/h1/set 9 100 -1.1 1.1
|
||||
/analysis/h1/set 10 100 -1.1 1.1
|
||||
/analysis/h1/set 11 100 -1.1 1.1
|
||||
/analysis/h1/set 12 100 -1.1 1.1
|
||||
|
||||
/run/beamOn 100000
|
||||
@@ -0,0 +1,86 @@
|
||||
/control/verbose 2
|
||||
/tracking/verbose 0
|
||||
|
||||
/opnovice2/boxProperty RINDEX 0.000002 1.3 0.000008 1.4
|
||||
/opnovice2/boxProperty ABSLENGTH 0.000002 1000000 0.000005 2000000 0.000008 3000000
|
||||
|
||||
/opnovice2/worldProperty RINDEX 0.000002 1.01 0.000008 1.01
|
||||
/opnovice2/worldProperty ABSLENGTH 0.000002 1000000 0.000005 2000000 0.000008 3000000
|
||||
|
||||
/opnovice2/surfaceModel unified
|
||||
/opnovice2/surfaceType dielectric_dielectric
|
||||
|
||||
############################# ground ################################
|
||||
/opnovice2/surfaceFinish ground
|
||||
|
||||
/opnovice2/surfaceSigmaAlpha 0.2
|
||||
/opnovice2/surfaceProperty SPECULARLOBECONSTANT 0.000002 0.1 0.000008 0.1
|
||||
/opnovice2/surfaceProperty SPECULARSPIKECONSTANT 0.000002 0.1 0.000008 0.1
|
||||
/opnovice2/surfaceProperty BACKSCATTERCONSTANT 0.000002 0.1 0.000008 0.1
|
||||
|
||||
/opnovice2/surfaceProperty TRANSMITTANCE 0.000002 0.1 0.000008 0.1
|
||||
/opnovice2/surfaceProperty REFLECTIVITY 0.000002 0.8 0.000008 0.8
|
||||
/opnovice2/surfaceProperty EFFICIENCY 0.000002 0.1 0.000008 0.1
|
||||
|
||||
/run/initialize
|
||||
#
|
||||
/gun/particle opticalphoton
|
||||
/gun/energy 3 eV
|
||||
/gun/position 0 0 0 cm
|
||||
/gun/direction 1 0 0
|
||||
/opnovice2/gun/optPhotonPolar
|
||||
#
|
||||
/analysis/setFileName unified
|
||||
/analysis/h1/set 3 40 -1 39
|
||||
/analysis/h1/set 4 100 -1.1 1.1
|
||||
/analysis/h1/set 5 100 -1.1 1.1
|
||||
/analysis/h1/set 6 100 -1.1 1.1
|
||||
/analysis/h1/set 7 100 -1.1 1.1
|
||||
/analysis/h1/set 8 100 -1.1 1.1
|
||||
/analysis/h1/set 9 100 -1.1 1.1
|
||||
/analysis/h1/set 10 100 -1.1 1.1
|
||||
/analysis/h1/set 11 100 -1.1 1.1
|
||||
/analysis/h1/set 12 100 -1.1 1.1
|
||||
|
||||
/run/beamOn 10000
|
||||
|
||||
############################# polished ########################################
|
||||
/opnovice2/surfaceFinish polished
|
||||
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
|
||||
/opnovice2/surfaceConstProperty SURFACEROUGHNESS 0.01
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
|
||||
############################# painted #########################################
|
||||
/opnovice2/surfaceFinish polishedfrontpainted
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
|
||||
/opnovice2/surfaceFinish polishedbackpainted
|
||||
/opnovice2/surfaceSigmaAlpha 0.0
|
||||
/opnovice2/surfaceProperty RINDEX 0.000002 1.4 0.000008 1.5
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
|
||||
/opnovice2/surfaceFinish groundfrontpainted
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
|
||||
/opnovice2/surfaceFinish groundbackpainted
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
|
||||
############################# dielectric_metal ################################
|
||||
/opnovice2/surfaceType dielectric_metal
|
||||
/opnovice2/surfaceFinish polished
|
||||
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
|
||||
/opnovice2/surfaceFinish ground
|
||||
|
||||
/run/initialize
|
||||
/run/beamOn 10000
|
||||
@@ -15,6 +15,13 @@ track of all tags.
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
October 29, 2019 D. Sawkey (WLS-V10-05-01)
|
||||
- Use G4OpticalPhysics
|
||||
- Use G4SteppingVerbose
|
||||
|
||||
October 21, 2019 D.Sawkey (WLS-V10-05-00)
|
||||
- Don't store random number seeds
|
||||
|
||||
May 17, 2018 J. Allison (WLS-V10-04-01)
|
||||
- Remove G4UI_USE and G4VIS_USE.
|
||||
- Move instantiation of G4UIExecutive to start of main.
|
||||
|
||||
@@ -49,8 +49,6 @@ class WLSActionInitialization : public G4VUserActionInitialization
|
||||
|
||||
virtual void BuildForMaster() const;
|
||||
virtual void Build() const;
|
||||
|
||||
virtual G4VSteppingVerbose* InitializeSteppingVerbose() const;
|
||||
|
||||
private:
|
||||
WLSDetectorConstruction* fDetector;
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file optical/wls/include/WLSExtraPhysics.hh
|
||||
/// \brief Definition of the WLSExtraPhysics class
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef WLSExtraPhysics_h
|
||||
#define WLSExtraPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
class WLSExtraPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
|
||||
WLSExtraPhysics();
|
||||
virtual ~WLSExtraPhysics();
|
||||
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,83 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file optical/wls/include/WLSOpticalPhysics.hh
|
||||
/// \brief Definition of the WLSOpticalPhysics class
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef WLSOpticalPhysics_h
|
||||
#define WLSOpticalPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4OpWLS.hh"
|
||||
#include "G4Cerenkov.hh"
|
||||
#include "G4Scintillation.hh"
|
||||
|
||||
#include "G4OpMieHG.hh"
|
||||
#include "G4OpRayleigh.hh"
|
||||
#include "G4OpAbsorption.hh"
|
||||
#include "G4OpBoundaryProcess.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
class WLSOpticalPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
|
||||
WLSOpticalPhysics(G4bool toggle=true);
|
||||
virtual ~WLSOpticalPhysics();
|
||||
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
G4OpWLS* GetWLSProcess() {return fWLSProcess;}
|
||||
G4Cerenkov* GetCerenkovProcess() {return fCerenkovProcess;}
|
||||
G4Scintillation* GetScintillationProcess() {return fScintProcess;}
|
||||
G4OpAbsorption* GetAbsorptionProcess() {return fAbsorptionProcess;}
|
||||
G4OpRayleigh* GetRayleighScatteringProcess() {return fRayleighScattering;}
|
||||
G4OpMieHG* GetMieHGScatteringProcess() {return fMieHGScatteringProcess;}
|
||||
G4OpBoundaryProcess* GetBoundaryProcess() { return fBoundaryProcess;}
|
||||
|
||||
void SetNbOfPhotonsCerenkov(G4int);
|
||||
|
||||
private:
|
||||
|
||||
G4OpWLS* fWLSProcess;
|
||||
G4Cerenkov* fCerenkovProcess;
|
||||
G4Scintillation* fScintProcess;
|
||||
G4OpAbsorption* fAbsorptionProcess;
|
||||
G4OpRayleigh* fRayleighScattering;
|
||||
G4OpMieHG* fMieHGScatteringProcess;
|
||||
G4OpBoundaryProcess* fBoundaryProcess;
|
||||
|
||||
G4bool fAbsorptionOn;
|
||||
|
||||
};
|
||||
#endif
|
||||
@@ -1,96 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file optical/wls/include/WLSPhysicsList.hh
|
||||
/// \brief Definition of the WLSPhysicsList class
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef WLSPhysicsList_h
|
||||
#define WLSPhysicsList_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
|
||||
class G4VPhysicsConstructor;
|
||||
class WLSPhysicsListMessenger;
|
||||
|
||||
class WLSStepMax;
|
||||
class WLSOpticalPhysics;
|
||||
|
||||
class WLSPhysicsList: public G4VModularPhysicsList
|
||||
{
|
||||
public:
|
||||
|
||||
WLSPhysicsList(G4String);
|
||||
virtual ~WLSPhysicsList();
|
||||
|
||||
void SetCuts();
|
||||
void SetCutForGamma(G4double);
|
||||
void SetCutForElectron(G4double);
|
||||
void SetCutForPositron(G4double);
|
||||
|
||||
void SetStepMax(G4double);
|
||||
WLSStepMax* GetStepMaxProcess();
|
||||
void AddStepMax();
|
||||
|
||||
/// Remove specific physics from physics list.
|
||||
void RemoveFromPhysicsList(const G4String&);
|
||||
|
||||
/// Make sure that the physics list is empty.
|
||||
void ClearPhysics();
|
||||
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
// Turn on or off the absorption process
|
||||
void SetAbsorption(G4bool);
|
||||
|
||||
void SetNbOfPhotonsCerenkov(G4int);
|
||||
|
||||
void SetVerbose(G4int);
|
||||
|
||||
private:
|
||||
|
||||
G4double fCutForGamma;
|
||||
G4double fCutForElectron;
|
||||
G4double fCutForPositron;
|
||||
|
||||
WLSStepMax* fStepMaxProcess;
|
||||
|
||||
WLSOpticalPhysics* fOpticalPhysics;
|
||||
|
||||
WLSPhysicsListMessenger* fMessenger;
|
||||
|
||||
G4bool fAbsorptionOn;
|
||||
|
||||
G4VMPLData::G4PhysConstVectorData* fPhysicsVector;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,94 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file optical/wls/include/WLSPhysicsListMessenger.hh
|
||||
/// \brief Definition of the WLSPhysicsListMessenger class
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef WLSPhysicsListMessenger_h
|
||||
#define WLSPhysicsListMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
|
||||
#include "G4DecayTable.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
|
||||
class WLSPhysicsList;
|
||||
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithABool;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithAnInteger;
|
||||
class G4UIcmdWithoutParameter;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
|
||||
/// Provide control of the physics list and cut parameters
|
||||
|
||||
class WLSPhysicsListMessenger : public G4UImessenger
|
||||
{
|
||||
public:
|
||||
|
||||
WLSPhysicsListMessenger(WLSPhysicsList* );
|
||||
virtual ~WLSPhysicsListMessenger();
|
||||
|
||||
virtual void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
|
||||
WLSPhysicsList* fPhysicsList;
|
||||
|
||||
G4UIdirectory* fDirectory;
|
||||
G4UIdirectory* fDecayDirectory;
|
||||
|
||||
G4UIcmdWithABool* fSetAbsorptionCMD;
|
||||
|
||||
G4UIcmdWithAnInteger* fVerboseCmd;
|
||||
G4UIcmdWithAnInteger* fCerenkovCmd;
|
||||
|
||||
G4UIcmdWithADoubleAndUnit* fGammaCutCMD;
|
||||
G4UIcmdWithADoubleAndUnit* fElectCutCMD;
|
||||
G4UIcmdWithADoubleAndUnit* fPosCutCMD;
|
||||
G4UIcmdWithADoubleAndUnit* fAllCutCMD;
|
||||
G4UIcmdWithADoubleAndUnit* fStepMaxCMD;
|
||||
|
||||
G4UIcmdWithAString* fRemovePhysicsCMD;
|
||||
G4UIcmdWithoutParameter* fClearPhysicsCMD;
|
||||
|
||||
G4UIcmdWithoutParameter* fListCMD;
|
||||
|
||||
G4UIcmdWithoutParameter* fPienuCMD;
|
||||
G4UIcmdWithoutParameter* fPimunuCMD;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,80 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file optical/wls/include/WLSStepMax.hh
|
||||
/// \brief Definition of the WLSStepMax class
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef WLSStepMax_h
|
||||
#define WLSStepMax_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4Step.hh"
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
|
||||
class WLSStepMax : public G4VDiscreteProcess
|
||||
{
|
||||
public:
|
||||
|
||||
WLSStepMax(const G4String& processName = "UserStepMax");
|
||||
WLSStepMax(WLSStepMax &);
|
||||
|
||||
virtual ~WLSStepMax();
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
void SetStepMax(G4double);
|
||||
|
||||
G4double GetStepMax() {return fMaxChargedStep;};
|
||||
|
||||
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition);
|
||||
|
||||
virtual G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
|
||||
|
||||
protected:
|
||||
|
||||
G4double GetMeanFreePath(const G4Track&, G4double, G4ForceCondition*);
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator as private
|
||||
WLSStepMax & operator=(const WLSStepMax &right);
|
||||
WLSStepMax(const WLSStepMax&);
|
||||
|
||||
private:
|
||||
|
||||
G4double fMaxChargedStep;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,50 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file optical/wls/include/WLSSteppingVerbose.hh
|
||||
/// \brief Definition of the WLSSteppingVerbose class
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef WLSSteppingVerbose_h
|
||||
#define WLSSteppingVerbose_h 1
|
||||
|
||||
#include "G4SteppingVerbose.hh"
|
||||
|
||||
class WLSSteppingVerbose : public G4SteppingVerbose
|
||||
{
|
||||
public:
|
||||
|
||||
WLSSteppingVerbose();
|
||||
virtual ~WLSSteppingVerbose();
|
||||
|
||||
virtual void StepInfo();
|
||||
virtual void TrackingStarted();
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -37,8 +37,6 @@
|
||||
#include "WLSTrackingAction.hh"
|
||||
#include "WLSSteppingAction.hh"
|
||||
#include "WLSStackingAction.hh"
|
||||
#include "WLSSteppingVerbose.hh"
|
||||
#include "G4GeneralParticleSource.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -78,7 +76,3 @@ void WLSActionInitialization::Build() const
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4VSteppingVerbose* WLSActionInitialization::InitializeSteppingVerbose() const
|
||||
{
|
||||
return new WLSSteppingVerbose();
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
|
||||
#include "G4OpBoundaryProcess.hh"
|
||||
#include "G4OpticalSurface.hh"
|
||||
#include "G4LogicalSkinSurface.hh"
|
||||
#include "G4LogicalBorderSurface.hh"
|
||||
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file optical/wls/src/WLSExtraPhysics.cc
|
||||
/// \brief Implementation of the WLSExtraPhysics class
|
||||
//
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4UserSpecialCuts.hh"
|
||||
#include "G4StepLimiter.hh"
|
||||
|
||||
#include "WLSExtraPhysics.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSExtraPhysics::WLSExtraPhysics()
|
||||
: G4VPhysicsConstructor("Extra") { }
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSExtraPhysics::~WLSExtraPhysics() { }
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSExtraPhysics::ConstructParticle() { }
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSExtraPhysics::ConstructProcess()
|
||||
{
|
||||
G4cout << "WLSExtraPhysics:: Add Extra Physics Processes"
|
||||
<< G4endl;
|
||||
|
||||
auto particleIterator=GetParticleIterator();
|
||||
particleIterator->reset();
|
||||
|
||||
while ((*particleIterator)()) {
|
||||
G4ParticleDefinition* particle = particleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
G4double charge = particle->GetPDGCharge();
|
||||
|
||||
if (!pmanager) {
|
||||
std::ostringstream o;
|
||||
o << "Particle " << particleName << "without a Process Manager";
|
||||
G4Exception("WLSExtraPhysics::ConstructProcess()","",
|
||||
FatalException,o.str().c_str());
|
||||
}
|
||||
|
||||
if (particleName == "opticalphoton") break;
|
||||
|
||||
if (charge != 0.0) {
|
||||
// All charged particles should have a step limiter
|
||||
// to make sure that the steps do not get too long.
|
||||
pmanager->AddDiscreteProcess(new G4StepLimiter());
|
||||
pmanager->AddDiscreteProcess(new G4UserSpecialCuts());
|
||||
} else if (particleName == "neutron") {
|
||||
// time cuts for ONLY neutrons:
|
||||
pmanager->AddDiscreteProcess(new G4UserSpecialCuts());
|
||||
} else {
|
||||
// Energy cuts for all other neutral particles
|
||||
pmanager->AddDiscreteProcess(new G4UserSpecialCuts());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,146 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file optical/wls/src/WLSOpticalPhysics.cc
|
||||
/// \brief Implementation of the WLSOpticalPhysics class
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#include "G4LossTableManager.hh"
|
||||
#include "G4EmSaturation.hh"
|
||||
|
||||
#include "WLSOpticalPhysics.hh"
|
||||
|
||||
WLSOpticalPhysics::WLSOpticalPhysics(G4bool toggle)
|
||||
: G4VPhysicsConstructor("Optical")
|
||||
{
|
||||
fWLSProcess = NULL;
|
||||
fScintProcess = NULL;
|
||||
fCerenkovProcess = NULL;
|
||||
fBoundaryProcess = NULL;
|
||||
fAbsorptionProcess = NULL;
|
||||
fRayleighScattering = NULL;
|
||||
fMieHGScatteringProcess = NULL;
|
||||
|
||||
fAbsorptionOn = toggle;
|
||||
}
|
||||
|
||||
WLSOpticalPhysics::~WLSOpticalPhysics() { }
|
||||
|
||||
#include "G4OpticalPhoton.hh"
|
||||
|
||||
void WLSOpticalPhysics::ConstructParticle()
|
||||
{
|
||||
G4OpticalPhoton::OpticalPhotonDefinition();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
void WLSOpticalPhysics::ConstructProcess()
|
||||
{
|
||||
G4cout << "WLSOpticalPhysics:: Add Optical Physics Processes"
|
||||
<< G4endl;
|
||||
|
||||
fWLSProcess = new G4OpWLS();
|
||||
|
||||
fScintProcess = new G4Scintillation();
|
||||
fScintProcess->SetScintillationYieldFactor(1.);
|
||||
fScintProcess->SetTrackSecondariesFirst(true);
|
||||
|
||||
fCerenkovProcess = new G4Cerenkov();
|
||||
fCerenkovProcess->SetMaxNumPhotonsPerStep(300);
|
||||
fCerenkovProcess->SetTrackSecondariesFirst(true);
|
||||
|
||||
fAbsorptionProcess = new G4OpAbsorption();
|
||||
fRayleighScattering = new G4OpRayleigh();
|
||||
fMieHGScatteringProcess = new G4OpMieHG();
|
||||
fBoundaryProcess = new G4OpBoundaryProcess();
|
||||
|
||||
G4ProcessManager* pManager =
|
||||
G4OpticalPhoton::OpticalPhoton()->GetProcessManager();
|
||||
|
||||
if (!pManager) {
|
||||
std::ostringstream o;
|
||||
o << "Optical Photon without a Process Manager";
|
||||
G4Exception("WLSOpticalPhysics::ConstructProcess()","",
|
||||
FatalException,o.str().c_str());
|
||||
}
|
||||
|
||||
if (fAbsorptionOn) pManager->AddDiscreteProcess(fAbsorptionProcess);
|
||||
|
||||
//pManager->AddDiscreteProcess(fRayleighScattering);
|
||||
//pManager->AddDiscreteProcess(fMieHGScatteringProcess);
|
||||
|
||||
pManager->AddDiscreteProcess(fBoundaryProcess);
|
||||
|
||||
fWLSProcess->UseTimeProfile("delta");
|
||||
//fWLSProcess->UseTimeProfile("exponential");
|
||||
|
||||
pManager->AddDiscreteProcess(fWLSProcess);
|
||||
|
||||
fScintProcess->SetScintillationYieldFactor(1.);
|
||||
fScintProcess->SetScintillationExcitationRatio(0.0);
|
||||
fScintProcess->SetTrackSecondariesFirst(true);
|
||||
|
||||
// Use Birks Correction in the Scintillation process
|
||||
|
||||
G4EmSaturation* emSaturation = G4LossTableManager::Instance()->EmSaturation();
|
||||
fScintProcess->AddSaturation(emSaturation);
|
||||
|
||||
auto particleIterator=GetParticleIterator();
|
||||
particleIterator->reset();
|
||||
while ( (*particleIterator)() ){
|
||||
|
||||
G4ParticleDefinition* particle = particleIterator->value();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
pManager = particle->GetProcessManager();
|
||||
if (!pManager) {
|
||||
std::ostringstream o;
|
||||
o << "Particle " << particleName << "without a Process Manager";
|
||||
G4Exception("WLSOpticalPhysics::ConstructProcess()","",
|
||||
FatalException,o.str().c_str());
|
||||
}
|
||||
|
||||
if(fCerenkovProcess->IsApplicable(*particle)){
|
||||
pManager->AddProcess(fCerenkovProcess);
|
||||
pManager->SetProcessOrdering(fCerenkovProcess,idxPostStep);
|
||||
}
|
||||
if(fScintProcess->IsApplicable(*particle)){
|
||||
pManager->AddProcess(fScintProcess);
|
||||
pManager->SetProcessOrderingToLast(fScintProcess,idxAtRest);
|
||||
pManager->SetProcessOrderingToLast(fScintProcess,idxPostStep);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void WLSOpticalPhysics::SetNbOfPhotonsCerenkov(G4int maxNumber)
|
||||
{
|
||||
fCerenkovProcess->SetMaxNumPhotonsPerStep(maxNumber);
|
||||
}
|
||||
@@ -1,345 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file optical/wls/src/WLSPhysicsList.cc
|
||||
/// \brief Implementation of the WLSPhysicsList class
|
||||
//
|
||||
//
|
||||
#include "WLSPhysicsList.hh"
|
||||
#include "WLSPhysicsListMessenger.hh"
|
||||
|
||||
#include "WLSExtraPhysics.hh"
|
||||
#include "WLSOpticalPhysics.hh"
|
||||
|
||||
#include "G4LossTableManager.hh"
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
//#include "G4PhysListFactory.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
#include "QGSP_BERT_HP.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
|
||||
#include "WLSStepMax.hh"
|
||||
|
||||
#include "G4ProcessTable.hh"
|
||||
|
||||
#include "G4PionDecayMakeSpin.hh"
|
||||
#include "G4DecayWithSpin.hh"
|
||||
|
||||
#include "G4DecayTable.hh"
|
||||
#include "G4MuonDecayChannelWithSpin.hh"
|
||||
#include "G4MuonRadiativeDecayChannelWithSpin.hh"
|
||||
|
||||
#include "G4RadioactiveDecayPhysics.hh"
|
||||
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSPhysicsList::WLSPhysicsList(G4String physName) : G4VModularPhysicsList()
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
|
||||
defaultCutValue = 1.*mm;
|
||||
fCutForGamma = defaultCutValue;
|
||||
fCutForElectron = defaultCutValue;
|
||||
fCutForPositron = defaultCutValue;
|
||||
|
||||
// G4PhysListFactory factory;
|
||||
G4VModularPhysicsList* phys = NULL;
|
||||
if (physName == "QGSP_BERT_HP") {
|
||||
phys = new QGSP_BERT_HP;
|
||||
} else {
|
||||
phys = new FTFP_BERT;
|
||||
}
|
||||
// if (factory.IsReferencePhysList(physName)) {
|
||||
// phys = factory.GetReferencePhysList(physName);
|
||||
// if(!phys)G4Exception("WLSPhysicsList::WLSPhysicsList","InvalidSetup",
|
||||
// FatalException,"PhysicsList does not exist");
|
||||
fMessenger = new WLSPhysicsListMessenger(this);
|
||||
// }
|
||||
|
||||
for (G4int i = 0; ; ++i) {
|
||||
G4VPhysicsConstructor* elem =
|
||||
const_cast<G4VPhysicsConstructor*> (phys->GetPhysics(i));
|
||||
if (elem == NULL) break;
|
||||
G4cout << "RegisterPhysics: " << elem->GetPhysicsName() << G4endl;
|
||||
RegisterPhysics(elem);
|
||||
}
|
||||
|
||||
fAbsorptionOn = true;
|
||||
|
||||
RegisterPhysics(new WLSExtraPhysics());
|
||||
RegisterPhysics(fOpticalPhysics = new WLSOpticalPhysics(fAbsorptionOn));
|
||||
|
||||
RegisterPhysics(new G4RadioactiveDecayPhysics());
|
||||
|
||||
fStepMaxProcess = new WLSStepMax();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSPhysicsList::~WLSPhysicsList()
|
||||
{
|
||||
delete fMessenger;
|
||||
|
||||
delete fStepMaxProcess;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsList::ClearPhysics()
|
||||
{
|
||||
for (G4PhysConstVector::iterator p = fPhysicsVector->begin();
|
||||
p != fPhysicsVector->end(); ++p) {
|
||||
delete (*p);
|
||||
}
|
||||
fPhysicsVector->clear();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsList::ConstructParticle()
|
||||
{
|
||||
G4VModularPhysicsList::ConstructParticle();
|
||||
|
||||
G4DecayTable* MuonPlusDecayTable = new G4DecayTable();
|
||||
MuonPlusDecayTable -> Insert(new
|
||||
G4MuonDecayChannelWithSpin("mu+",0.986));
|
||||
MuonPlusDecayTable -> Insert(new
|
||||
G4MuonRadiativeDecayChannelWithSpin("mu+",0.014));
|
||||
G4MuonPlus::MuonPlusDefinition() -> SetDecayTable(MuonPlusDecayTable);
|
||||
|
||||
G4DecayTable* MuonMinusDecayTable = new G4DecayTable();
|
||||
MuonMinusDecayTable -> Insert(new
|
||||
G4MuonDecayChannelWithSpin("mu-",0.986));
|
||||
MuonMinusDecayTable -> Insert(new
|
||||
G4MuonRadiativeDecayChannelWithSpin("mu-",0.014));
|
||||
G4MuonMinus::MuonMinusDefinition() -> SetDecayTable(MuonMinusDecayTable);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsList::ConstructProcess()
|
||||
{
|
||||
G4VModularPhysicsList::ConstructProcess();
|
||||
|
||||
SetVerbose(0);
|
||||
|
||||
G4DecayWithSpin* decayWithSpin = new G4DecayWithSpin();
|
||||
|
||||
G4ProcessTable* processTable = G4ProcessTable::GetProcessTable();
|
||||
|
||||
G4VProcess* decay;
|
||||
decay = processTable->FindProcess("Decay",G4MuonPlus::MuonPlus());
|
||||
|
||||
G4ProcessManager* pManager;
|
||||
pManager = G4MuonPlus::MuonPlus()->GetProcessManager();
|
||||
|
||||
if (pManager) {
|
||||
if (decay) pManager->RemoveProcess(decay);
|
||||
pManager->AddProcess(decayWithSpin);
|
||||
// set ordering for PostStepDoIt and AtRestDoIt
|
||||
pManager ->SetProcessOrdering(decayWithSpin, idxPostStep);
|
||||
pManager ->SetProcessOrdering(decayWithSpin, idxAtRest);
|
||||
}
|
||||
|
||||
decay = processTable->FindProcess("Decay",G4MuonMinus::MuonMinus());
|
||||
|
||||
pManager = G4MuonMinus::MuonMinus()->GetProcessManager();
|
||||
|
||||
if (pManager) {
|
||||
if (decay) pManager->RemoveProcess(decay);
|
||||
pManager->AddProcess(decayWithSpin);
|
||||
// set ordering for PostStepDoIt and AtRestDoIt
|
||||
pManager ->SetProcessOrdering(decayWithSpin, idxPostStep);
|
||||
pManager ->SetProcessOrdering(decayWithSpin, idxAtRest);
|
||||
}
|
||||
|
||||
G4PionDecayMakeSpin* poldecay = new G4PionDecayMakeSpin();
|
||||
|
||||
decay = processTable->FindProcess("Decay",G4PionPlus::PionPlus());
|
||||
|
||||
pManager = G4PionPlus::PionPlus()->GetProcessManager();
|
||||
|
||||
if (pManager) {
|
||||
if (decay) pManager->RemoveProcess(decay);
|
||||
pManager->AddProcess(poldecay);
|
||||
// set ordering for PostStepDoIt and AtRestDoIt
|
||||
pManager ->SetProcessOrdering(poldecay, idxPostStep);
|
||||
pManager ->SetProcessOrdering(poldecay, idxAtRest);
|
||||
}
|
||||
|
||||
decay = processTable->FindProcess("Decay",G4PionMinus::PionMinus());
|
||||
|
||||
pManager = G4PionMinus::PionMinus()->GetProcessManager();
|
||||
|
||||
if (pManager) {
|
||||
if (decay) pManager->RemoveProcess(decay);
|
||||
pManager->AddProcess(poldecay);
|
||||
// set ordering for PostStepDoIt and AtRestDoIt
|
||||
pManager ->SetProcessOrdering(poldecay, idxPostStep);
|
||||
pManager ->SetProcessOrdering(poldecay, idxAtRest);
|
||||
}
|
||||
|
||||
AddStepMax();
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsList::RemoveFromPhysicsList(const G4String& name)
|
||||
{
|
||||
G4bool success = false;
|
||||
for (G4PhysConstVector::iterator p = fPhysicsVector->begin();
|
||||
p != fPhysicsVector->end(); ++p) {
|
||||
G4VPhysicsConstructor* e = (*p);
|
||||
if (e->GetPhysicsName() == name) {
|
||||
fPhysicsVector->erase(p);
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!success) {
|
||||
G4ExceptionDescription message;
|
||||
message << "PhysicsList::RemoveFromEMPhysicsList "<< name << "not found";
|
||||
G4Exception("example WLSPhysicsList::RemoveFromPhysicsList()",
|
||||
"ExamWLSPhysicsList01",FatalException,message);
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsList::SetAbsorption(G4bool toggle)
|
||||
{
|
||||
fAbsorptionOn = toggle;
|
||||
RemoveFromPhysicsList("Optical");
|
||||
fPhysicsVector->
|
||||
push_back(fOpticalPhysics = new WLSOpticalPhysics(toggle));
|
||||
fOpticalPhysics->ConstructProcess();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsList::SetCuts()
|
||||
{
|
||||
if (verboseLevel >0) {
|
||||
G4cout << "WLSPhysicsList::SetCuts:";
|
||||
G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length")
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
// 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(fCutForGamma, "gamma");
|
||||
SetCutValue(fCutForElectron, "e-");
|
||||
SetCutValue(fCutForPositron, "e+");
|
||||
|
||||
if (verboseLevel>0) DumpCutValuesTable();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsList::SetCutForGamma(G4double cut)
|
||||
{
|
||||
fCutForGamma = cut;
|
||||
SetParticleCuts(fCutForGamma, G4Gamma::Gamma());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsList::SetCutForElectron(G4double cut)
|
||||
{
|
||||
fCutForElectron = cut;
|
||||
SetParticleCuts(fCutForElectron, G4Electron::Electron());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsList::SetCutForPositron(G4double cut)
|
||||
{
|
||||
fCutForPositron = cut;
|
||||
SetParticleCuts(fCutForPositron, G4Positron::Positron());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsList::SetStepMax(G4double step)
|
||||
{
|
||||
fStepMaxProcess->SetStepMax(step);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSStepMax* WLSPhysicsList::GetStepMaxProcess()
|
||||
{
|
||||
return fStepMaxProcess;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsList::AddStepMax()
|
||||
{
|
||||
// Step limitation seen as a process
|
||||
|
||||
auto particleIterator=GetParticleIterator();
|
||||
particleIterator->reset();
|
||||
while ((*particleIterator)()){
|
||||
G4ParticleDefinition* particle = particleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
|
||||
if (fStepMaxProcess->IsApplicable(*particle) && !particle->IsShortLived())
|
||||
{
|
||||
if (pmanager) pmanager ->AddDiscreteProcess(fStepMaxProcess);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsList::SetNbOfPhotonsCerenkov(G4int maxNumber)
|
||||
{
|
||||
fOpticalPhysics->SetNbOfPhotonsCerenkov(maxNumber);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsList::SetVerbose(G4int verbose)
|
||||
{
|
||||
fOpticalPhysics->GetCerenkovProcess()->SetVerboseLevel(verbose);
|
||||
fOpticalPhysics->GetScintillationProcess()->SetVerboseLevel(verbose);
|
||||
fOpticalPhysics->GetAbsorptionProcess()->SetVerboseLevel(verbose);
|
||||
fOpticalPhysics->GetRayleighScatteringProcess()->SetVerboseLevel(verbose);
|
||||
fOpticalPhysics->GetMieHGScatteringProcess()->SetVerboseLevel(verbose);
|
||||
fOpticalPhysics->GetBoundaryProcess()->SetVerboseLevel(verbose);
|
||||
}
|
||||
@@ -1,233 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file optical/wls/src/WLSPhysicsListMessenger.cc
|
||||
/// \brief Implementation of the WLSPhysicsListMessenger class
|
||||
//
|
||||
//
|
||||
#include "globals.hh"
|
||||
|
||||
#include "WLSPhysicsListMessenger.hh"
|
||||
#include "WLSPhysicsList.hh"
|
||||
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "G4UIcmdWithABool.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
#include "G4UIcmdWithAnInteger.hh"
|
||||
#include "G4UIcmdWithoutParameter.hh"
|
||||
#include "G4UIcmdWithADoubleAndUnit.hh"
|
||||
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4PionRadiativeDecayChannel.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSPhysicsListMessenger::WLSPhysicsListMessenger(WLSPhysicsList* pPhys)
|
||||
: fPhysicsList(pPhys)
|
||||
{
|
||||
|
||||
fDirectory = new G4UIdirectory("/WLS/phys/");
|
||||
fDirectory->SetGuidance("WLSPhysicsList control");
|
||||
|
||||
fSetAbsorptionCMD = new G4UIcmdWithABool("/WLS/setAbsorption", this);
|
||||
fSetAbsorptionCMD->SetGuidance("Turn on or off absorption process");
|
||||
fSetAbsorptionCMD->AvailableForStates(G4State_Idle);
|
||||
|
||||
fVerboseCmd = new G4UIcmdWithAnInteger("/WLS/phys/verbose",this);
|
||||
fVerboseCmd->SetGuidance("set verbose for physics processes");
|
||||
fVerboseCmd->SetParameterName("verbose",true);
|
||||
fVerboseCmd->SetDefaultValue(1);
|
||||
fVerboseCmd->SetRange("verbose>=0");
|
||||
fVerboseCmd->AvailableForStates(G4State_Idle);
|
||||
|
||||
fCerenkovCmd =
|
||||
new G4UIcmdWithAnInteger("/WLS/phys/cerenkovMaxPhotons",this);
|
||||
fCerenkovCmd->SetGuidance("set max nb of photons per step");
|
||||
fCerenkovCmd->SetParameterName("MaxNumber",false);
|
||||
fCerenkovCmd->SetRange("MaxNumber>=0");
|
||||
fCerenkovCmd->AvailableForStates(G4State_Idle);
|
||||
|
||||
fGammaCutCMD = new G4UIcmdWithADoubleAndUnit("/WLS/phys/gammaCut",this);
|
||||
fGammaCutCMD->SetGuidance("Set gamma cut");
|
||||
fGammaCutCMD->SetParameterName("Gcut",false);
|
||||
fGammaCutCMD->SetUnitCategory("Length");
|
||||
fGammaCutCMD->SetRange("Gcut>0.0");
|
||||
fGammaCutCMD->SetDefaultUnit("mm");
|
||||
fGammaCutCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fElectCutCMD = new G4UIcmdWithADoubleAndUnit("/WLS/phys/electronCut",this);
|
||||
fElectCutCMD->SetGuidance("Set electron cut");
|
||||
fElectCutCMD->SetParameterName("Ecut",false);
|
||||
fElectCutCMD->SetUnitCategory("Length");
|
||||
fElectCutCMD->SetRange("Ecut>0.0");
|
||||
fElectCutCMD->SetDefaultUnit("mm");
|
||||
fElectCutCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fPosCutCMD = new G4UIcmdWithADoubleAndUnit("/WLS/phys/positronCut",this);
|
||||
fPosCutCMD->SetGuidance("Set positron cut");
|
||||
fPosCutCMD->SetParameterName("Pcut",false);
|
||||
fPosCutCMD->SetUnitCategory("Length");
|
||||
fPosCutCMD->SetRange("Pcut>0.0");
|
||||
fPosCutCMD->SetDefaultUnit("mm");
|
||||
fPosCutCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fAllCutCMD = new G4UIcmdWithADoubleAndUnit("/WLS/phys/allCuts",this);
|
||||
fAllCutCMD->SetGuidance("Set cut for all");
|
||||
fAllCutCMD->SetParameterName("cut",false);
|
||||
fAllCutCMD->SetUnitCategory("Length");
|
||||
fAllCutCMD->SetRange("cut>0.0");
|
||||
fAllCutCMD->SetDefaultUnit("mm");
|
||||
fAllCutCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fStepMaxCMD = new G4UIcmdWithADoubleAndUnit("/WLS/phys/stepMax",this);
|
||||
fStepMaxCMD->SetGuidance("Set max. step length in the detector");
|
||||
fStepMaxCMD->SetParameterName("mxStep",false);
|
||||
fStepMaxCMD->SetUnitCategory("Length");
|
||||
fStepMaxCMD->SetRange("mxStep>0.0");
|
||||
fStepMaxCMD->SetDefaultUnit("mm");
|
||||
fStepMaxCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fClearPhysicsCMD =
|
||||
new G4UIcmdWithoutParameter("/WLS/phys/clearPhysics",this);
|
||||
fClearPhysicsCMD->SetGuidance("Clear the physics list");
|
||||
fClearPhysicsCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fRemovePhysicsCMD = new G4UIcmdWithAString("/WLS/phys/removePhysics",this);
|
||||
fRemovePhysicsCMD->
|
||||
SetGuidance("Remove a physics process from Physics List");
|
||||
fRemovePhysicsCMD->SetParameterName("PList",false);
|
||||
fRemovePhysicsCMD->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fListCMD = new G4UIcmdWithoutParameter("/WLS/phys/list",this);
|
||||
fListCMD->SetGuidance("Available Physics Lists");
|
||||
fListCMD->AvailableForStates(G4State_Idle);
|
||||
|
||||
fDecayDirectory = new G4UIdirectory("/decay/");
|
||||
fDecayDirectory->SetGuidance("Decay chain control commands.");
|
||||
|
||||
fPienuCMD = new G4UIcmdWithoutParameter("/decay/pienu", this);
|
||||
fPienuCMD->SetGuidance("Sets the pi+ to decay into e+, nu");
|
||||
|
||||
fPimunuCMD = new G4UIcmdWithoutParameter("/decay/pimunu", this);
|
||||
fPimunuCMD->SetGuidance("Sets the pi+ to decay into mu+, nu");
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSPhysicsListMessenger::~WLSPhysicsListMessenger()
|
||||
{
|
||||
delete fVerboseCmd;
|
||||
delete fCerenkovCmd;
|
||||
|
||||
delete fSetAbsorptionCMD;
|
||||
|
||||
delete fGammaCutCMD;
|
||||
delete fElectCutCMD;
|
||||
delete fPosCutCMD;
|
||||
delete fAllCutCMD;
|
||||
|
||||
delete fClearPhysicsCMD;
|
||||
delete fRemovePhysicsCMD;
|
||||
|
||||
delete fListCMD;
|
||||
|
||||
delete fPienuCMD;
|
||||
delete fPimunuCMD;
|
||||
|
||||
delete fDirectory;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSPhysicsListMessenger::SetNewValue(G4UIcommand* command,
|
||||
G4String newValue)
|
||||
{
|
||||
if( command == fSetAbsorptionCMD ) {
|
||||
fPhysicsList->SetAbsorption(G4UIcmdWithABool::GetNewBoolValue(newValue));
|
||||
}
|
||||
|
||||
else if( command == fVerboseCmd ) {
|
||||
fPhysicsList->SetVerbose(fVerboseCmd->GetNewIntValue(newValue));
|
||||
}
|
||||
|
||||
else if( command == fCerenkovCmd ) {
|
||||
fPhysicsList->
|
||||
SetNbOfPhotonsCerenkov(fCerenkovCmd->GetNewIntValue(newValue));
|
||||
}
|
||||
|
||||
else if (command == fPienuCMD) {
|
||||
G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
|
||||
G4ParticleDefinition* particleDef = particleTable->FindParticle("pi+");
|
||||
G4VDecayChannel* mode =
|
||||
new G4PhaseSpaceDecayChannel("pi+",1.0,2,"e+","nu_e");
|
||||
G4DecayTable* table = new G4DecayTable();
|
||||
table->Insert(mode);
|
||||
// mode = new G4PionRadiativeDecayChannel("pi+",0.000017);
|
||||
// table->Insert(mode);
|
||||
particleDef->SetDecayTable(table);
|
||||
}
|
||||
|
||||
else if (command == fPimunuCMD) {
|
||||
G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
|
||||
G4ParticleDefinition* particleDef = particleTable->FindParticle("pi+");
|
||||
G4VDecayChannel* mode =
|
||||
new G4PhaseSpaceDecayChannel("pi+",1.000,2,"mu+","nu_mu");
|
||||
G4DecayTable* table = new G4DecayTable();
|
||||
table->Insert(mode);
|
||||
particleDef->SetDecayTable(table);
|
||||
}
|
||||
|
||||
else if (command == fGammaCutCMD) {
|
||||
fPhysicsList->SetCutForGamma(fGammaCutCMD
|
||||
->GetNewDoubleValue(newValue));
|
||||
}
|
||||
else if (command == fElectCutCMD) {
|
||||
fPhysicsList->SetCutForElectron(fElectCutCMD
|
||||
->GetNewDoubleValue(newValue));
|
||||
}
|
||||
else if (command == fPosCutCMD) {
|
||||
fPhysicsList->SetCutForPositron(fPosCutCMD
|
||||
->GetNewDoubleValue(newValue));
|
||||
}
|
||||
else if (command == fAllCutCMD) {
|
||||
G4double cut = fAllCutCMD->GetNewDoubleValue(newValue);
|
||||
fPhysicsList->SetCutForGamma(cut);
|
||||
fPhysicsList->SetCutForElectron(cut);
|
||||
fPhysicsList->SetCutForPositron(cut);
|
||||
}
|
||||
else if (command == fStepMaxCMD) {
|
||||
fPhysicsList->SetStepMax(fStepMaxCMD
|
||||
->GetNewDoubleValue(newValue));
|
||||
}
|
||||
else if (command == fClearPhysicsCMD) {
|
||||
fPhysicsList->ClearPhysics();
|
||||
}
|
||||
else if (command == fRemovePhysicsCMD) {
|
||||
G4String name = newValue;
|
||||
fPhysicsList->RemoveFromPhysicsList(name);
|
||||
}
|
||||
}
|
||||
@@ -62,8 +62,7 @@ void WLSRunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
{
|
||||
G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl;
|
||||
|
||||
G4RunManager::GetRunManager()->SetRandomNumberStore(true);
|
||||
G4RunManager::GetRunManager()->SetRandomNumberStoreDir("random/");
|
||||
G4RunManager::GetRunManager()->SetRandomNumberStore(false);
|
||||
|
||||
if (fAutoSeed) {
|
||||
// automatic (time-based) random seeds for each run
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file optical/wls/src/WLSStepMax.cc
|
||||
/// \brief Implementation of the WLSStepMax class
|
||||
//
|
||||
//
|
||||
#include "G4Track.hh"
|
||||
#include "G4VParticleChange.hh"
|
||||
|
||||
#include "WLSStepMax.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSStepMax::WLSStepMax(const G4String& aName)
|
||||
: G4VDiscreteProcess(aName), fMaxChargedStep(DBL_MAX)
|
||||
{
|
||||
if (verboseLevel>0) {
|
||||
G4cout << GetProcessName() << " is created "<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSStepMax::~WLSStepMax() { }
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSStepMax::WLSStepMax(WLSStepMax& right) : G4VDiscreteProcess(right) { }
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4bool WLSStepMax::IsApplicable(const G4ParticleDefinition& particle)
|
||||
{
|
||||
return (particle.GetPDGCharge() != 0.);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSStepMax::SetStepMax(G4double step) { fMaxChargedStep = step ; }
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4double WLSStepMax::PostStepGetPhysicalInteractionLength(
|
||||
const G4Track&,
|
||||
G4double,
|
||||
G4ForceCondition* condition)
|
||||
{
|
||||
// condition is set to "Not Forced"
|
||||
*condition = NotForced;
|
||||
|
||||
G4double ProposedStep = DBL_MAX;
|
||||
|
||||
if ( fMaxChargedStep > 0.) ProposedStep = fMaxChargedStep;
|
||||
|
||||
return ProposedStep;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4VParticleChange* WLSStepMax::PostStepDoIt(const G4Track& aTrack,
|
||||
const G4Step& )
|
||||
{
|
||||
// do nothing
|
||||
aParticleChange.Initialize(aTrack);
|
||||
return &aParticleChange;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4double WLSStepMax::GetMeanFreePath(const G4Track&,G4double,G4ForceCondition*)
|
||||
{
|
||||
return 0.;
|
||||
}
|
||||
@@ -1,211 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file optical/wls/src/WLSSteppingVerbose.cc
|
||||
/// \brief Implementation of the WLSSteppingVerbose class
|
||||
//
|
||||
//
|
||||
#include "G4UnitsTable.hh"
|
||||
|
||||
#include "WLSSteppingVerbose.hh"
|
||||
#include "WLSSteppingAction.hh"
|
||||
|
||||
// Print out of the steps
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSSteppingVerbose::WLSSteppingVerbose()
|
||||
{
|
||||
G4VSteppingVerbose::SetSilent(1);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSSteppingVerbose::~WLSSteppingVerbose() { }
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSSteppingVerbose::StepInfo()
|
||||
{
|
||||
CopyState();
|
||||
|
||||
G4int prec = G4cout.precision(8);
|
||||
|
||||
// if (fTrack->GetDefinition()->GetParticleName() != "opticalphoton") return;
|
||||
|
||||
if ( verboseLevel >= 1 ) {
|
||||
if ( verboseLevel >= 4 ) VerboseTrack();
|
||||
if ( verboseLevel >= 3 ) {
|
||||
G4cout << G4endl;
|
||||
G4cout << std::setw( 5) << "#Step#" << " "
|
||||
<< std::setw(10) << "X" << " "
|
||||
<< std::setw(10) << "Y" << " "
|
||||
<< std::setw(10) << "Z" << " "
|
||||
<< std::setw(10) << "KineE" << " "
|
||||
<< std::setw(10) << "dEStep" << " "
|
||||
<< std::setw(10) << "StepLeng"
|
||||
<< std::setw(10) << "TrakLeng"
|
||||
<< std::setw(10) << "NextVolu"
|
||||
<< std::setw(10) << "Process"
|
||||
<< std::setw(10) << "Dir_x" << " "
|
||||
<< std::setw(10) << "Dir_y" << " "
|
||||
<< std::setw(10) << "Dir_z" << " "
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
G4cout << std::setw( 5) << fTrack->GetCurrentStepNumber() << " "
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetPosition().x(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetPosition().y(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetPosition().z(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
|
||||
<< std::setw(10) << G4BestUnit(fStep->
|
||||
GetTotalEnergyDeposit(),"Energy")
|
||||
<< std::setw(10) << G4BestUnit(fStep->GetStepLength(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetTrackLength(),"Length");
|
||||
|
||||
if ( fTrack->GetNextVolume() != 0 ) {
|
||||
G4cout << std::setw(10) << fTrack->GetVolume()->GetName();
|
||||
} else {
|
||||
G4cout << std::setw(10) << "OutOfWorld";
|
||||
}
|
||||
|
||||
if ( fStep->GetPostStepPoint()->GetProcessDefinedStep() != 0 ) {
|
||||
G4cout << " "
|
||||
<< std::setw(10) << fStep->
|
||||
GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName();
|
||||
} else {
|
||||
G4cout << " UserLimit";
|
||||
}
|
||||
|
||||
//G4cout << std::setw(12) << G4BestUnit(fTrack->
|
||||
// GetMomentumDirection().x(),"Length")
|
||||
// << std::setw(12) << G4BestUnit(fTrack->
|
||||
// GetMomentumDirection().y(),"Length")
|
||||
// << std::setw(12) << G4BestUnit(fTrack->
|
||||
// GetMomentumDirection().z(),"Length");
|
||||
|
||||
G4cout << G4endl;
|
||||
|
||||
if ( verboseLevel == 2 ) {
|
||||
G4int tN2ndariesTot = fN2ndariesAtRestDoIt +
|
||||
fN2ndariesAlongStepDoIt +
|
||||
fN2ndariesPostStepDoIt;
|
||||
if ( tN2ndariesTot>0 ) {
|
||||
G4cout << " :----- List of 2ndaries - "
|
||||
<< "#SpawnInStep=" << std::setw(3) << tN2ndariesTot
|
||||
<< "(Rest=" << std::setw(2) << fN2ndariesAtRestDoIt
|
||||
<< ",Along=" << std::setw(2) << fN2ndariesAlongStepDoIt
|
||||
<< ",Post=" << std::setw(2) << fN2ndariesPostStepDoIt
|
||||
<< "), "
|
||||
<< "#SpawnTotal=" << std::setw(3) << (*fSecondary).size()
|
||||
<< " ---------------"
|
||||
<< G4endl;
|
||||
|
||||
for(size_t lp1=(*fSecondary).size()-tN2ndariesTot;
|
||||
lp1<(*fSecondary).size(); lp1++){
|
||||
G4cout << " : "
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length")
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length")
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length")
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy")
|
||||
<< std::setw(10)
|
||||
<< (*fSecondary)[lp1]->GetDefinition()->GetParticleName();
|
||||
G4cout << G4endl;
|
||||
}
|
||||
|
||||
G4cout << " :-----------------------------"
|
||||
<< "----------------------------------"
|
||||
<< "-- EndOf2ndaries Info ---------------"
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
G4cout.precision(prec);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSSteppingVerbose::TrackingStarted()
|
||||
{
|
||||
CopyState();
|
||||
|
||||
G4int prec = G4cout.precision(3);
|
||||
|
||||
// if (fTrack->GetDefinition()->GetParticleName() != "opticalphoton") return;
|
||||
|
||||
if ( verboseLevel > 0 ) {
|
||||
|
||||
G4cout << G4endl;
|
||||
G4cout << "*******************************************************"
|
||||
<< "**************************************************"
|
||||
<< G4endl;
|
||||
G4cout << "* G4Track Information: "
|
||||
<< " Particle = " << fTrack->GetDefinition()->GetParticleName()
|
||||
<< ","
|
||||
<< " Track ID = " << fTrack->GetTrackID()
|
||||
<< ","
|
||||
<< " Parent ID = " << fTrack->GetParentID()
|
||||
<< G4endl;
|
||||
G4cout << "*******************************************************"
|
||||
<< "**************************************************"
|
||||
<< G4endl;
|
||||
G4cout << G4endl;
|
||||
|
||||
G4cout << std::setw( 5) << "Step#" << " "
|
||||
<< std::setw(10) << "X" << " "
|
||||
<< std::setw(10) << "Y" << " "
|
||||
<< std::setw(10) << "Z" << " "
|
||||
<< std::setw(10) << "KineE" << " "
|
||||
<< std::setw(10) << "dEStep" << " "
|
||||
<< std::setw(10) << "StepLeng" << " "
|
||||
<< std::setw(10) << "TrakLeng" << " "
|
||||
<< std::setw(10) << "Volume" << " "
|
||||
<< std::setw(10) << "Process" << G4endl;
|
||||
|
||||
G4cout << std::setw( 5) << fTrack->GetCurrentStepNumber() << " "
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetPosition().x(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetPosition().y(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetPosition().z(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
|
||||
<< std::setw(10) << G4BestUnit(fStep->
|
||||
GetTotalEnergyDeposit(),"Energy")
|
||||
<< std::setw(10) << G4BestUnit(fStep->GetStepLength(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetTrackLength(),"Length");
|
||||
|
||||
if ( fTrack->GetNextVolume() ) {
|
||||
G4cout << std::setw(10) << fTrack->GetVolume()->GetName();
|
||||
} else {
|
||||
G4cout << std::setw(10) << "OutOfWorld";
|
||||
}
|
||||
G4cout << " initStep" << G4endl;
|
||||
}
|
||||
G4cout.precision(prec);
|
||||
}
|
||||
@@ -43,9 +43,10 @@
|
||||
|
||||
#include "G4UImanager.hh"
|
||||
|
||||
#include "Randomize.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
#include "G4OpticalPhysics.hh"
|
||||
#include "G4EmStandardPhysics_option4.hh"
|
||||
|
||||
#include "WLSPhysicsList.hh"
|
||||
#include "WLSDetectorConstruction.hh"
|
||||
|
||||
#include "WLSActionInitialization.hh"
|
||||
@@ -82,44 +83,24 @@ int main(int argc,char** argv)
|
||||
G4RunManager * runManager = new G4RunManager;
|
||||
#endif
|
||||
|
||||
G4String physName = "QGSP_BERT_HP";
|
||||
|
||||
#ifndef WIN32
|
||||
G4int c = 0;
|
||||
while ((c=getopt(argc,argv,"p")) != -1)
|
||||
{
|
||||
switch (c)
|
||||
{
|
||||
case 'p':
|
||||
physName = optarg;
|
||||
G4cout << "Physics List used is " << physName << G4endl;
|
||||
break;
|
||||
case ':': /* -p without operand */
|
||||
fprintf(stderr,
|
||||
"Option -%c requires an operand\n", optopt);
|
||||
break;
|
||||
case '?':
|
||||
fprintf(stderr,
|
||||
"Unrecognised option: -%c\n", optopt);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Set mandatory initialization classes
|
||||
//
|
||||
// Detector construction
|
||||
WLSDetectorConstruction* detector = new WLSDetectorConstruction();
|
||||
runManager->SetUserInitialization(detector);
|
||||
// Physics list
|
||||
runManager->SetUserInitialization(new WLSPhysicsList(physName));
|
||||
|
||||
G4VModularPhysicsList* physicsList = new FTFP_BERT;
|
||||
physicsList->ReplacePhysics(new G4EmStandardPhysics_option4());
|
||||
G4OpticalPhysics* opticalPhysics = new G4OpticalPhysics();
|
||||
physicsList->RegisterPhysics(opticalPhysics);
|
||||
runManager->SetUserInitialization(physicsList);
|
||||
|
||||
// User action initialization
|
||||
runManager->SetUserInitialization(new WLSActionInitialization(detector));
|
||||
|
||||
// Initialize visualization
|
||||
//
|
||||
G4VisManager* visManager = new G4VisExecutive;
|
||||
// G4VisExecutive can take a verbosity argument - see /vis/verbose guidance.
|
||||
// G4VisManager* visManager = new G4VisExecutive("Quiet");
|
||||
visManager->Initialize();
|
||||
|
||||
// Get the pointer to the User Interface manager
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
#
|
||||
# Macro file for the initialization phase of wls
|
||||
# Macro file for wls example
|
||||
#
|
||||
#/run/verbose 1
|
||||
#/control/verbose 1
|
||||
#/event/verbose 1
|
||||
#/tracking/verbose 1
|
||||
/run/verbose 1
|
||||
/control/verbose 1
|
||||
/event/verbose 0
|
||||
/tracking/verbose 0
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
#/WLS/phys/verbose 1
|
||||
#
|
||||
/gps/particle opticalphoton
|
||||
/gps/ene/type Mono
|
||||
/gps/ene/mono 2.10 eV
|
||||
@@ -22,7 +20,5 @@
|
||||
/gps/ang/maxtheta 90.0 deg
|
||||
/gps/pos/centre 0.0 0.0 0.0 cm
|
||||
#
|
||||
#/control/execute vis.mac
|
||||
#
|
||||
/run/beamOn 200
|
||||
#
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
|
||||
############################################
|
||||
!!! WARNING - FPE detection is activated !!!
|
||||
############################################
|
||||
|
||||
**************************************************************
|
||||
Geant4 version Name: geant4-10-05-ref-06 (30-June-2019)
|
||||
Geant4 version Name: geant4-10-06-ref-00 (6-December-2019)
|
||||
Copyright : Geant4 Collaboration
|
||||
References : NIM A 506 (2003), 250-303
|
||||
: IEEE-TNS 53 (2006), 270-278
|
||||
@@ -8,16 +12,9 @@
|
||||
WWW : http://geant4.org/
|
||||
**************************************************************
|
||||
|
||||
<<< Geant4 Physics List simulation engine: QGSP_BERT_HP
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT
|
||||
|
||||
|
||||
RegisterPhysics: G4EmStandard
|
||||
RegisterPhysics: G4GammaLeptoNuclearPhys
|
||||
RegisterPhysics: Decay
|
||||
RegisterPhysics: hElasticWEL_CHIPS_HP
|
||||
RegisterPhysics: hInelastic QGSP_BERT_HP
|
||||
RegisterPhysics: stopping
|
||||
RegisterPhysics: ionInelasticFTFP_BIC
|
||||
G4VModularPhysicsList::ReplacePhysics: G4EmStandardwith type : 2 is replaces with G4EmStandard_opt4
|
||||
Visualization Manager instantiating with verbosity "warnings (3)"...
|
||||
Visualization Manager initialising...
|
||||
Registering graphics systems...
|
||||
@@ -63,6 +60,9 @@ End of Run User Vis Actions: none
|
||||
|
||||
Some /vis commands (optionally) take a string to specify colour.
|
||||
"/vis/list" to see available colours.
|
||||
/event/verbose 0
|
||||
/tracking/verbose 0
|
||||
/run/initialize
|
||||
G4NistMaterialBuilder::FindOrBuildMaterial G4_Galactic
|
||||
G4NistMaterialBuilder: BuildMaterial #286
|
||||
New material nComponents= 1
|
||||
@@ -110,137 +110,157 @@ New material TiO2 is prepeared nMaterials= 314 nComponents= 788 nCurrent= 2
|
||||
G4NistMaterialBuilder: BuildMaterial #313
|
||||
New material nComponents= 2
|
||||
G4NistElementBuilder: Build Element <Ti> Z= 22 Aeff= 47.8667 with natural isotope composition
|
||||
/cvmfs/geant4.cern.ch/share/data/G4NDL4.5
|
||||
@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Inelastic
|
||||
@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.5
|
||||
NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen
|
||||
NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen
|
||||
NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen
|
||||
WLSExtraPhysics:: Add Extra Physics Processes
|
||||
WLSOpticalPhysics:: Add Optical Physics Processes
|
||||
|
||||
FTFP_BERT : new threshold between BERT and FTFP is over the interval
|
||||
for pions : 3 to 6 GeV
|
||||
for kaons : 3 to 6 GeV
|
||||
for proton : 3 to 6 GeV
|
||||
for neutron : 3 to 6 GeV
|
||||
|
||||
### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0
|
||||
### Birks coefficients used in run time
|
||||
Polystyrene 0.126 mm/MeV 0.01323 g/cm^2/MeV massFactor= 101.167 effCharge= 0.027027
|
||||
/gps/particle opticalphoton
|
||||
/gps/ene/type Mono
|
||||
/gps/ene/mono 2.10 eV
|
||||
/gps/pos/type Plane
|
||||
/gps/pos/shape Circle
|
||||
/gps/pos/radius 0.5 mm
|
||||
/gps/ang/type iso
|
||||
/gps/ang/mintheta 180.0 deg
|
||||
/gps/ang/maxtheta 90.0 deg
|
||||
/gps/pos/centre 0.0 0.0 0.0 cm
|
||||
/run/beamOn 200
|
||||
|
||||
### === Deexcitation model UAtomDeexcitation is activated for 1 region:
|
||||
DefaultRegionForTheWorld 1 1 0
|
||||
### === Auger cascade flag: 1
|
||||
### === Ignore cuts flag: 1
|
||||
DefaultRegionForTheWorld 1 0 0
|
||||
### === Ignore cuts flag: 0
|
||||
|
||||
phot: for gamma SubType=12 BuildTable=0
|
||||
LambdaPrime table from 200 keV to 100 TeV in 61 bins
|
||||
LambdaPrime table from 200 keV to 100 TeV in 174 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo
|
||||
|
||||
compt: for gamma SubType=13 BuildTable=1
|
||||
Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1
|
||||
LambdaPrime table from 1 MeV to 100 TeV in 56 bins
|
||||
Lambda table from 100 eV to 1 MeV, 20 bins/decade, spline: 1
|
||||
LambdaPrime table from 1 MeV to 100 TeV in 160 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Klein-Nishina : Emin= 0 eV Emax= 100 TeV
|
||||
LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo
|
||||
KleinNishina : Emin= 20 MeV Emax= 100 TeV Fluo
|
||||
|
||||
conv: for gamma SubType=14 BuildTable=1
|
||||
Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1
|
||||
Lambda table from 1.022 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BetheHeitler : Emin= 0 eV Emax= 80 GeV ModifiedTsai
|
||||
BetheHeitlerLPM : Emin= 80 GeV Emax= 100 TeV ModifiedTsai
|
||||
BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
Rayl: for gamma SubType=11 BuildTable=1
|
||||
Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0
|
||||
LambdaPrime table from 100 keV to 100 TeV in 63 bins
|
||||
Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0
|
||||
LambdaPrime table from 100 keV to 100 TeV in 180 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator
|
||||
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimType: 1, latDisp: 1
|
||||
RangeFactor= 0.08, stepLimType: 2, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
|
||||
GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
|
||||
|
||||
eIoni: for e- SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MollerBhabha : Emin= 0 eV Emax= 100 TeV
|
||||
LowEnergyIoni : Emin= 0 eV Emax= 100 keV deltaVI
|
||||
MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI
|
||||
|
||||
eBrem: for e- SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/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 ModifiedTsai
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS
|
||||
|
||||
ePairProd: for e- SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 25x1001 from 0.1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ePairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for e-, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 1
|
||||
Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
|
||||
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimType: 1, latDisp: 1
|
||||
RangeFactor= 0.08, stepLimType: 2, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
|
||||
GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
|
||||
|
||||
eIoni: for e+ SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MollerBhabha : Emin= 0 eV Emax= 100 TeV
|
||||
PenIoni : Emin= 0 eV Emax= 100 keV
|
||||
MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI
|
||||
|
||||
eBrem: for e+ SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/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 ModifiedTsai
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS
|
||||
|
||||
ePairProd: for e+ SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 25x1001 from 0.1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ePairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
annihil: for e+, integral:1 SubType=5 BuildTable=0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eplus2gg : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for e+, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 1
|
||||
Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
|
||||
|
||||
msc: for proton SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
hIoni: for proton SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for proton SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
hPairProd: for proton SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for proton, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
@@ -251,127 +271,119 @@ msc: for GenericIon SubType= 10
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.02
|
||||
Stopping Power data for 17 ion/material pairs
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.001 mm), integ: 1, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BraggIon : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
=======================================================================
|
||||
====== Radioactive Decay Physics Parameters ========
|
||||
=======================================================================
|
||||
Max life time 1.4427e+06 ps
|
||||
Internal e- conversion flag 1
|
||||
Stored internal conversion coefficients 1
|
||||
Enable correlated gamma emission 0
|
||||
Max 2J for sampling of angular correlations 10
|
||||
Atomic de-excitation enabled 1
|
||||
Auger electron emission enabled 1
|
||||
Auger cascade enabled 1
|
||||
Check EM cuts disabled for atomic de-excitation 1
|
||||
Use Bearden atomic level energies 0
|
||||
=======================================================================
|
||||
ParamICRU73 : Emin= 0 eV Emax= 100 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, stepLimType: 0, latDisp: 0
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
ionIoni: for alpha SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.02
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BraggIon : Emin= 0 eV Emax=7.9452 MeV
|
||||
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV
|
||||
BraggIon : Emin= 0 eV Emax=7.9452 MeV deltaVI
|
||||
BetheBloch : Emin=7.9452 MeV Emax= 100 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, stepLimType: 0, latDisp: 0
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
hIoni: for anti_proton SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for anti_proton SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
hPairProd: for anti_proton SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for anti_proton, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for kaon+ SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
hIoni: for kaon+ SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax=1.05231 MeV
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
|
||||
Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for kaon+ SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
hPairProd: for kaon+ SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for kaon+, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for kaon- SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
hIoni: for kaon- SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
|
||||
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for kaon- SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
hPairProd: for kaon- SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
@@ -383,61 +395,61 @@ CoulombScat: for kaon-, integral:1 SubType=1 BuildTable=1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0, polarAngLim(deg)= 180
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1, polarAngLim(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
muIoni: for mu+ SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 200 keV
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV
|
||||
Bragg : Emin= 0 eV Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
|
||||
|
||||
muBrems: for mu+ SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
muPairProd: for mu+ SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for mu+, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0, polarAngLim(deg)= 180
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1, polarAngLim(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
muIoni: for mu- SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 200 keV
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV
|
||||
ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
|
||||
|
||||
muBrems: for mu- SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
muPairProd: for mu- SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
@@ -447,77 +459,61 @@ CoulombScat: for mu-, integral:1 SubType=1 BuildTable=1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Inelastic file for Z = 6, A = 13 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Inelastic/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen
|
||||
NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen
|
||||
NeutronHP: /Inelastic file for Z = 8, A = 18 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Inelastic/CrossSection/8_17_Oxygen
|
||||
NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Elastic file for Z = 6, A = 13 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Elastic/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Elastic file for Z = 8, A = 18 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Elastic/CrossSection/8_17_Oxygen
|
||||
@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Inelastic
|
||||
NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Capture file for Z = 6, A = 13 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Capture/CrossSection/6_nat_Carbon
|
||||
NeutronHP: /Capture file for Z = 8, A = 18 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.5/Capture/CrossSection/8_17_Oxygen
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
hIoni: for pi+ SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax=297.505 keV
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV
|
||||
Bragg : Emin= 0 eV Emax=297.505 keV deltaVI
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for pi+ SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
hPairProd: for pi+ SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for pi+, integral:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 0
|
||||
RangeFactor= 0.2, stepLimType: 0, latDisp: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
|
||||
hIoni: for pi- SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax=297.505 keV
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV
|
||||
ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for pi- SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
hPairProd: for pi- SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV
|
||||
@@ -531,16 +527,32 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
====================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for neutron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: neutronInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: nCapture
|
||||
Model: nRadCapture: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: nKiller
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for GenericIon
|
||||
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: RadioactiveDecay
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for He3
|
||||
|
||||
@@ -549,8 +561,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: He3Inelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -561,8 +573,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: alphaInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -611,8 +623,9 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Hadronic Processes for anti_neutron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_neutronInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
@@ -656,14 +669,14 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: dInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e+
|
||||
|
||||
Process: positronNuclear
|
||||
Process: electronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -678,7 +691,7 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Hadronic Processes for gamma
|
||||
|
||||
Process: photonNuclear
|
||||
Model: BertiniCascade: 0 eV ---> 3.5 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: PhotoNuclearXS: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -690,11 +703,9 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: kaon+Inelastic
|
||||
Model: QGSP: 12 GeV ---> 100 TeV
|
||||
Model: FTFP: 9.5 GeV ---> 25 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 9.9 GeV
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsKaonPlusInelasticXS: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon-
|
||||
@@ -704,11 +715,9 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: kaon-Inelastic
|
||||
Model: QGSP: 12 GeV ---> 100 TeV
|
||||
Model: FTFP: 9.5 GeV ---> 25 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 9.9 GeV
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsKaonMinusInelasticXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
@@ -721,8 +730,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
|
||||
Process: lambdaInelastic
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Cr_sctns: ChipsHyperonInelasticXS: 0 eV ---> 100 TeV
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for mu+
|
||||
@@ -740,61 +749,28 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
|
||||
Process: muMinusCaptureAtRest
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for neutron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 19.5 MeV ---> 100 TeV
|
||||
Model: NeutronHPElastic: 0 eV ---> 20 MeV
|
||||
Cr_sctns: NeutronHPElasticXS: 0 eV ---> 20 MeV
|
||||
Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: neutronInelastic
|
||||
Model: QGSP: 12 GeV ---> 100 TeV
|
||||
Model: FTFP: 9.5 GeV ---> 25 GeV
|
||||
Model: BertiniCascade: 19.9 MeV ---> 9.9 GeV
|
||||
Model: NeutronHPInelastic: 0 eV ---> 20 MeV
|
||||
Cr_sctns: NeutronHPInelasticXS: 0 eV ---> 20 MeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: nCapture
|
||||
Model: NeutronHPCapture: 0 eV ---> 20 MeV
|
||||
Model: nRadCapture: 19.9 MeV ---> 100 TeV
|
||||
Cr_sctns: NeutronHPCaptureXS: 0 eV ---> 20 MeV
|
||||
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
|
||||
|
||||
Process: nFission
|
||||
Model: NeutronHPFission: 0 eV ---> 20 MeV
|
||||
Model: G4LFission: 19.9 MeV ---> 100 TeV
|
||||
Cr_sctns: NeutronHPFissionXS: 0 eV ---> 20 MeV
|
||||
Cr_sctns: GheishaFissionXS: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi+
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: pi+Inelastic
|
||||
Model: QGSP: 12 GeV ---> 100 TeV
|
||||
Model: FTFP: 9.5 GeV ---> 25 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 9.9 GeV
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi-
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: pi-Inelastic
|
||||
Model: QGSP: 12 GeV ---> 100 TeV
|
||||
Model: FTFP: 9.5 GeV ---> 25 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 9.9 GeV
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hBertiniCaptureAtRest
|
||||
@@ -807,9 +783,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
Process: protonInelastic
|
||||
Model: QGSP: 12 GeV ---> 100 TeV
|
||||
Model: FTFP: 9.5 GeV ---> 25 GeV
|
||||
Model: BertiniCascade: 0 eV ---> 9.9 GeV
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -820,8 +795,8 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
Process: tInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 100 TeV
|
||||
|
||||
================================================================
|
||||
@@ -830,29 +805,83 @@ CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
=======================================================================
|
||||
Type of pre-compound inverse x-section 3
|
||||
Pre-compound model active 1
|
||||
Pre-compound low energy (MeV) 0.1
|
||||
Pre-compound excitation low energy (MeV) 0.1
|
||||
Pre-compound excitation high energy (MeV) 30
|
||||
Type of de-excitation inverse x-section 3
|
||||
Type of de-excitation factory Evaporation+GEM
|
||||
Number of de-excitation channels 68
|
||||
Min excitation energy (keV) 0.01
|
||||
Min energy per nucleon for multifragmentation (MeV) 1e+05
|
||||
Min energy per nucleon for multifragmentation (MeV) 2e+05
|
||||
Limit excitation energy for Fermi BreakUp (MeV) 20
|
||||
Level density (1/MeV) 0.075
|
||||
Model of level density flag 1
|
||||
Time limit for long lived isomeres (ns) 1442.7
|
||||
Use simple level density model 1
|
||||
Use discrete excitation energy of the residual 0
|
||||
Time limit for long lived isomeres (ns) 1e+12
|
||||
Internal e- conversion flag 1
|
||||
Store e- internal conversion data 1
|
||||
Electron internal conversion ID 0
|
||||
Store e- internal conversion data 0
|
||||
Electron internal conversion ID 2
|
||||
Correlated gamma emission flag 0
|
||||
Max 2J for sampling of angular correlations 10
|
||||
Upload data before 1st event for Z < 9
|
||||
=======================================================================
|
||||
|
||||
========= Table of registered couples ==============================
|
||||
|
||||
Index : 0 used in the geometry : Yes
|
||||
Material : G4_AIR
|
||||
Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um
|
||||
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 1 used in the geometry : Yes
|
||||
Material : Coating
|
||||
Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um
|
||||
Energy thresholds : gamma 2.94056 keV e- 351.877 keV e+ 342.545 keV proton 70 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 2 used in the geometry : Yes
|
||||
Material : Polystyrene
|
||||
Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um
|
||||
Energy thresholds : gamma 2.11555 keV e- 283.792 keV e+ 276.265 keV proton 70 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 3 used in the geometry : Yes
|
||||
Material : PMMA
|
||||
Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um
|
||||
Energy thresholds : gamma 2.40367 keV e- 307.625 keV e+ 299.466 keV proton 70 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 4 used in the geometry : Yes
|
||||
Material : G4_Al
|
||||
Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um
|
||||
Energy thresholds : gamma 5.85564 keV e- 460.395 keV e+ 442.201 keV proton 70 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
====================================================================
|
||||
|
||||
G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model.
|
||||
See commands in /vis/modeling/trajectories/ for other options.
|
||||
### Run 0 starts.
|
||||
### Run 0 start.
|
||||
|
||||
--------- Ranecu engine status ---------
|
||||
Initial seed (index) = 123
|
||||
Current couple of seeds = 960416485, 2004255415
|
||||
----------------------------------------
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 200
|
||||
User=0.580000s Real=0.578111s Sys=0.000000s
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
G4 kernel has come to Quit state.
|
||||
================== Deleting memory pools ===================
|
||||
Number of memory pools allocated: 13 of which, static: 0
|
||||
Dynamic pools deleted: 13 / Total memory freed: 0.019 MB
|
||||
============================================================
|
||||
RunManagerKernel is deleted. Good bye :)
|
||||
|
||||
Reference in New Issue
Block a user