Import Geant4 11.0.0.beta source tree
This commit is contained in:
@@ -1,17 +0,0 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# CMakeLists.txt
|
||||
# Module : G4hadronic_radioactivedecay
|
||||
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_radioactivedecay
|
||||
#
|
||||
# CMakeLists.txt for building a single granular library.
|
||||
#
|
||||
# Generated on : 24/9/2010
|
||||
#
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
if(GEANT4_BUILD_GRANULAR_LIBS)
|
||||
include(Geant4MacroLibraryTargets)
|
||||
GEANT4_GRANULAR_LIBRARY_TARGET(COMPONENT sources.cmake)
|
||||
endif()
|
||||
|
||||
@@ -25,14 +25,11 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \
|
||||
-I$(G4BASE)/processes/electromagnetic/utils/include \
|
||||
-I$(G4BASE)/processes/hadronic/management/include \
|
||||
-I$(G4BASE)/processes/hadronic/util/include \
|
||||
-I$(G4BASE)/processes/hadronic/processes/include \
|
||||
-I$(G4BASE)/processes/hadronic/cross_sections/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/de_excitation/photon_evaporation/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/de_excitation/management/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/fission/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/management/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/util/include \
|
||||
-I$(G4BASE)/particles/management/include \
|
||||
-I$(G4BASE)/particles/leptons/include \
|
||||
-I$(G4BASE)/particles/bosons/include \
|
||||
|
||||
@@ -14,11 +14,56 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
15 April 2021 Vladimir Ivanchenko radioactive_decay-V10-06-11
|
||||
21 May 2021 Dennis Wright radioactive_decay-V10-07-07
|
||||
-----------------------------------------------------
|
||||
- remove G4RadioactiveDecay.hh, .cc
|
||||
- remove G4RadioactiveDecaymessenger.hh, .cc
|
||||
- source.cmake: remove above filenames from list
|
||||
- G4ITDecay.cc: remove #include G4RadioactiveDecay.hh
|
||||
|
||||
16 April 2021 Ben Morgan radioactive_decay-V10-07-06
|
||||
----------------------------------------------------
|
||||
- Migrate build to modular CMake API
|
||||
|
||||
27 April 2021 Alberto Ribon radioactive_decay-V10-07-05
|
||||
---------------------------------------------------------
|
||||
- G4RadioactiveDecayBase, G4RadioactiveDecayBaseMessenger : introduced
|
||||
a new parameter for analogue mode to kill very long radioactive decays
|
||||
at rest of nuclides happening later than this threshold parameter.
|
||||
Its default value (10^27 ns) corresponds to more than twice the age of
|
||||
the universe. The value of the threshold can be changed via a new UI
|
||||
command, e.g. to set it to 1000 years:
|
||||
"/process/had/rdm/thresholdForVeryLongDecayTime 3.1536e+10 second" .
|
||||
(This kind of cut has been introduced in order to avoid to account
|
||||
energy depositions happening after many billions of years in ordinary
|
||||
materials used in calorimetry, in particular Tungsten and Lead - via
|
||||
their their natural unstable, but very long lived, isotopes, such as
|
||||
W183, W180 and Pb204. Note that the cut is not on the average, mean
|
||||
lifetime, but on the actual sampled global decay time.)
|
||||
|
||||
15 April 2021 Vladimir Ivanchenko radioactive_decay-V10-07-04
|
||||
---------------------------------------------------------------
|
||||
- G4RadioactiveDecayBase - fix #2350
|
||||
|
||||
16 February 2021 Alberto Ribon radioactive_decay-V10-06-10
|
||||
13 April 2021 Alberto Ribon radioactive_decay-V10-07-03
|
||||
---------------------------------------------------------
|
||||
- GNUmakefile, sources.cmake : removed the subdirectories
|
||||
hadronic/models/management and hadronic/models/util
|
||||
(that have been now deleted, with their classes moved to
|
||||
hadronic/util and hadronic/management).
|
||||
Removed also the useless dependency to hadronic/process.
|
||||
|
||||
31 March 2021 Gabriele Cosmo radioactive_decay-V10-07-02
|
||||
----------------------------------------------------------
|
||||
- Use existing facility to find logical volume in store, rather than looping
|
||||
through in G4RadioactiveDecayBase/G4RadioactiveDecay Select/DeselectAVolume().
|
||||
|
||||
22 March 2021 Alberto Ribon radioactive_decay-V10-07-01
|
||||
---------------------------------------------------------
|
||||
- G4RadioactiveDecayBaseMessenger, G4RadioactivationMessenger,
|
||||
G4RadioactiveDecaymessenger : removed deprecated commands.
|
||||
|
||||
16 February 2021 Alberto Ribon radioactive_decay-V10-07-00
|
||||
------------------------------------------------------------
|
||||
- G4RadioactiveDecayBase : set the weight of secondaries tracks to the
|
||||
mother's weight value in the method G4RadioactiveDecayBase::DecayAnalog.
|
||||
@@ -39,22 +84,22 @@ track of all tags.
|
||||
|
||||
12 May 2020 Alberto Ribon radioactive_decay-V10-06-08
|
||||
------------------------------------------------------------
|
||||
- G4RadioactiveDecayBase.cc , G4RadioactiveDecay.cc :
|
||||
- G4RadioactiveDecayBase.cc , G4RadioactiveDecay.cc :
|
||||
in the method BuildPhysicsTable, check the global hadronic verbosity level
|
||||
before printing out information.
|
||||
|
||||
19 February 2020 Alberto Ribon radioactive_decay-V10-06-07
|
||||
------------------------------------------------------------
|
||||
- G4RadioactiveDecayBase.cc , G4RadioactiveDecay.cc , G4Radioactivation.cc :
|
||||
use G4VERBOSE consistently;
|
||||
use G4VERBOSE consistently;
|
||||
for G4Radioactivation, forgotten change of verbosity from 0 to 1
|
||||
at line 844.
|
||||
|
||||
12 February 2020 Alberto Ribon radioactive_decay-V10-06-06
|
||||
------------------------------------------------------------
|
||||
- G4RadioactiveDecayBase.cc , G4RadioactiveDecay.cc : forgotten change of
|
||||
verbosity from 0 to 1, at lines: 309, 316, 331 and 932 for
|
||||
G4RadioactiveDecayBase.cc , and 340, 396, 403, 418 and 1676 for
|
||||
verbosity from 0 to 1, at lines: 309, 316, 331 and 932 for
|
||||
G4RadioactiveDecayBase.cc , and 340, 396, 403, 418 and 1676 for
|
||||
G4RadioactiveDecay.cc .
|
||||
|
||||
6 February 2020 Alberto Ribon radioactive_decay-V10-06-05
|
||||
@@ -66,12 +111,12 @@ track of all tags.
|
||||
-----------------------------------------------------------
|
||||
- increased verbosity thresholds in G4RadioactiveDecay, G4RadioactiveDecayBase,
|
||||
G4Radioctivation in order to reduce printout size
|
||||
|
||||
|
||||
22 January 2020 Dennis Wright radioactive_decay-V10-06-03
|
||||
-----------------------------------------------------------
|
||||
- G4Radioactivation::AddDeexcitationSpectrumForBiasMode: fix memory leak
|
||||
by deleting pevap_products. Addresses bug report #2164.
|
||||
|
||||
|
||||
10 January 2020 Dennis Wright radioactive_decay-V10-06-02
|
||||
-----------------------------------------------------------
|
||||
- fix Coverity errors 102466 and 102470, "dereference before null test"
|
||||
@@ -80,11 +125,11 @@ track of all tags.
|
||||
|
||||
- fix Coverity error 98937, uninitialized boolean, in G4SFDecay by removing
|
||||
boolean applyARM, which was unused.
|
||||
|
||||
|
||||
19 December 2019 Dennis Wright radioactive_decay-V10-06-01
|
||||
------------------------------------------------------------
|
||||
- G4RadioactiveDecay.cc, G4RadioactiveDecayBase.cc: change default verbosity
|
||||
from 0 to 1, and remove G4cerr wherever it occurs and replace it with
|
||||
- G4RadioactiveDecay.cc, G4RadioactiveDecayBase.cc: change default verbosity
|
||||
from 0 to 1, and remove G4cerr wherever it occurs and replace it with
|
||||
G4Exception or G4cout
|
||||
|
||||
15 December 2019 Dennis Wright radioactive_decay-V10-06-00
|
||||
@@ -97,18 +142,18 @@ track of all tags.
|
||||
-Add passing of type of sub-models to secondary particles generated in
|
||||
G4RadioctiveDecay.cc and G4RadioctiveDecayBase.cc
|
||||
|
||||
-Add radioactive decay mode with emission of Triton, in
|
||||
-Add radioactive decay mode with emission of Triton, in
|
||||
G4RadioctiveDecay.cc, G4RadioctiveDecayBase.cc, and G4Radioactivation.
|
||||
Code received from Anselmo Meregaglia.
|
||||
|
||||
20 August 2019 Dennis Wright radioactive_decay-V10-05-08
|
||||
----------------------------------------------------------
|
||||
- G4RadioactiveDecayBase, G4Radioactivation : remove spurious debug messages
|
||||
- G4Radioactivation : remove verboseLevel member and SetVerboseLevel()
|
||||
- G4Radioactivation : remove verboseLevel member and SetVerboseLevel()
|
||||
and GetVerboseLevel() methods as they are already in the base classa
|
||||
- remove G4cerr from G4Radioactivation and G4RadioactiveDecayBase. Replace
|
||||
with G4cout.
|
||||
|
||||
with G4cout.
|
||||
|
||||
29 July 2019 Dennis Wright radioactive_decay-V10-05-07
|
||||
--------------------------------------------------------
|
||||
- G4RadioactiveDecayBase: split off unbiased decay part of DecayIt()
|
||||
@@ -116,7 +161,7 @@ Code received from Anselmo Meregaglia.
|
||||
protected.
|
||||
|
||||
- G4Radioactivation: correct bug in which AtRestDoIt() and PostStepDoIt()
|
||||
both incorrectly call base class method DecayIt()
|
||||
both incorrectly call base class method DecayIt()
|
||||
|
||||
15 July 2019 Dennis Wright radioactive_decay-V10-05-06
|
||||
--------------------------------------------------------
|
||||
@@ -131,25 +176,25 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
17 June 2019 Dennis Wright radioactive_decay-V10-05-04
|
||||
--------------------------------------------------------
|
||||
- G4RadioactivationMessenger : remove "fast beta" option (obsolete), internal
|
||||
conversion option (not part of biasing) and atomic relaxation option (not
|
||||
- G4RadioactivationMessenger : remove "fast beta" option (obsolete), internal
|
||||
conversion option (not part of biasing) and atomic relaxation option (not
|
||||
part of biasing).
|
||||
Add analogueMC option which was forgotten when class was developed.
|
||||
- G4RadioactiveDecayBaseMessenger : remove "fast beta" option
|
||||
- G4RadioactiveDecayBaseMessenger : remove "fast beta" option
|
||||
- G4RadioactiveDecayBase.hh : remove boolean FBeta
|
||||
|
||||
- replace G4ExceptionDescription in loop with simple string at exception time
|
||||
(G4RadioactiveDecay, G4RadioactiveDecayBase, G4Radioactivation)
|
||||
|
||||
|
||||
29 May 2019 Dennis Wright radioactive_decay-V10-05-03
|
||||
-------------------------------------------------------
|
||||
-------------------------------------------------------
|
||||
- G4RadioactiveDecay::CalculateChainsFromParent and
|
||||
G4Radioactivation::CalculateChainsFromParent : fix Coverity memory leak
|
||||
G4Radioactivation::CalculateChainsFromParent : fix Coverity memory leak
|
||||
of summedDecayTable
|
||||
|
||||
8 May 2019 Dennis Wright radioactive_decay-V10-05-02
|
||||
-------------------------------------------------------
|
||||
- Fix incorrect branching ratio sum for biased mode, to account for the addition
|
||||
- Fix incorrect branching ratio sum for biased mode, to account for the addition
|
||||
of N shell EC capture and spontaneous fission. Files affected:
|
||||
G4Radioactivation.cc
|
||||
G4RadioactiveDecay.cc
|
||||
@@ -157,14 +202,14 @@ Code received from Anselmo Meregaglia.
|
||||
4 April 2019 Dennis Wright radioactive_decay-V10-05-01
|
||||
---------------------------------------------------------
|
||||
- Add spontaneous fission channel
|
||||
Add new class G4SFDecay to handle neutron and gamma generation using LLNL model
|
||||
Add new class G4SFDecay to handle neutron and gamma generation using LLNL model
|
||||
G4RadioactiveDecayMode.hh, .cc : add SpFission to enum
|
||||
G4NucleusLimits.cc : set aMax to 260 (to accommodate 252Cf)
|
||||
G4RadioactiveDecay.cc, G4RadioactiveDecayBase.cc : read spontaneous fission data
|
||||
G4RadioactiveDecay.cc, G4RadioactiveDecayBase.cc : read spontaneous fission data
|
||||
from database, insert into decay tables and instantiate G4SFDecay
|
||||
modify sources.cmake to include fission model library and G4SFDecay
|
||||
add fission model directory to GNUmakefile
|
||||
|
||||
modify sources.cmake to include fission model library and G4SFDecay
|
||||
add fission model directory to GNUmakefile
|
||||
|
||||
14 December 2018 Dennis Wright radioactive_decay-V10-05-00
|
||||
------------------------------------------------------------
|
||||
- G4RadioactiveDecayBase.hh - add StreamInfo() method
|
||||
@@ -183,9 +228,9 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
- G4ECCapture
|
||||
-Add tables of PL2/PL1 PM2/PM1 and PN2/PN1 based on bound electrons radial wave amplitudes
|
||||
taken from bambynek et, Rev. Mod. Phys., vol. 49, 1977
|
||||
|
||||
-Compute partial probabilities of subshells PL1,PL2,PM1,PM2,PN1,PN2 from
|
||||
taken from bambynek et, Rev. Mod. Phys., vol. 49, 1977
|
||||
|
||||
-Compute partial probabilities of subshells PL1,PL2,PM1,PM2,PN1,PN2 from
|
||||
the tables PL2/PL1, PM2/PM1, and PN2/PN1. Valid for allowed transitions.
|
||||
|
||||
|
||||
@@ -198,36 +243,36 @@ Code received from Anselmo Meregaglia.
|
||||
their size is reduced by about ten orders of magnitude, enough to set
|
||||
negative weights to zero. Fixes bug report #1480.
|
||||
|
||||
- G4Radioactivation::ConvolveSourceTimeProfile: same as above.
|
||||
- G4Radioactivation::ConvolveSourceTimeProfile: same as above.
|
||||
|
||||
12 March 2018 Dennis Wright radioactive_decay-V10-04-01
|
||||
---------------------------------------------------------
|
||||
- G4RadioactiveDecay::AddDeexcitationSpectrumForBiasMode: make sure
|
||||
- G4RadioactiveDecay::AddDeexcitationSpectrumForBiasMode: make sure
|
||||
last stable nuclide in decay chain is included as secondary.
|
||||
Fixes bug 2024.
|
||||
- G4Radioactivation::AddDeexcitationSpectrumForBiasMode: same as above
|
||||
- G4Radioactivation::AddDeexcitationSpectrumForBiasMode: same as above
|
||||
|
||||
14 December 2017 Dennis Wright radioactive_decay-V10-04-00
|
||||
------------------------------------------------------------
|
||||
- re-tag
|
||||
|
||||
- re-tag
|
||||
|
||||
12 December 2017 Dennis Wright radioactive_decay-V10-03-21
|
||||
------------------------------------------------------------
|
||||
- G4RadioactiveDecay.hh, .cc: add check that environment variable
|
||||
G4RADIOACTIVEDATA is pointing to correct directory. Moved check from
|
||||
G4RadioactiveDecay::LoadDecayTable() to ctor. Fixes bug #1942.
|
||||
|
||||
- G4RadioactiveDecayBase.hh, .cc: same change as above
|
||||
- G4RadioactiveDecayBase.hh, .cc: same change as above
|
||||
|
||||
|
||||
15 November 2017 Dennis Wright radioactive_decay-V10-03-20
|
||||
------------------------------------------------------------
|
||||
- G4RadioactiveDecay::DecayIt in the variance reduction branch:
|
||||
replace the line
|
||||
replace the line
|
||||
if (asecondaryparticle->GetDefinition()->GetBaryonNumber() < 5) {
|
||||
with
|
||||
with
|
||||
if (asecondaryparticle->GetDefinition()->GetPDGStable() ) {
|
||||
This will allow the stable nucleus at the end of the decay chain to
|
||||
This will allow the stable nucleus at the end of the decay chain to
|
||||
be added to the final state particle stack. Fixes bug report #2007.
|
||||
|
||||
|
||||
@@ -235,13 +280,13 @@ Code received from Anselmo Meregaglia.
|
||||
-----------------------------------------------------------
|
||||
- G4ECDecay: Set the probability for selection of L and M subshells to PL1/PL=0.995,PL2/PL=0.005
|
||||
PM1/PM=0.995 and PM2/PM=0.005. Close to Fe55 case.
|
||||
|
||||
|
||||
|
||||
01 November 2017 V.Ivanchenko radioactive_decay-V10-03-18
|
||||
-----------------------------------------------------------
|
||||
- G4RadioactiveDecay: added StreamInfo method for printing
|
||||
radioactive decay parameters; call this method in BuildPhysicsTable;
|
||||
do not enable correlated gamma; removed unused EM headers
|
||||
do not enable correlated gamma; removed unused EM headers
|
||||
|
||||
23 October 2017 Dennis Wright radioactive_decay-V10-03-17
|
||||
-----------------------------------------------------------
|
||||
@@ -259,7 +304,7 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
5 October 2017 Dennis Wright radioactive_decay-V10-03-15
|
||||
-----------------------------------------------------------
|
||||
- change name of class and file G4RadioactiveDecayRate to
|
||||
- change name of class and file G4RadioactiveDecayRate to
|
||||
G4RadioactiveDecayRatesToDaughter
|
||||
|
||||
- change name of class and file G4RadioactiveDecayRateVector to
|
||||
@@ -267,7 +312,7 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
- add and fill method G4RadioactiveDecay::ProcessDescription()
|
||||
|
||||
- create new classes G4Radioactivation and G4RadioactivationMessenger for
|
||||
- create new classes G4Radioactivation and G4RadioactivationMessenger for
|
||||
biased use only
|
||||
|
||||
- create new classes G4RadioactiveDecayBase and G4RadioactiveDecayBaseMessenger
|
||||
@@ -284,13 +329,13 @@ Code received from Anselmo Meregaglia.
|
||||
when setting it by G4VDecayChannel::SetBR method.
|
||||
This solve a bug that appeared with changes in G4VDecayChannel from
|
||||
tag particles-V10-03-13.
|
||||
|
||||
|
||||
11 July 2017 Dennis Wright radioactive_decay-V10-03-13
|
||||
--------------------------------------------------------
|
||||
- G4RadioactiveDecay::BuildPhysicsTable(): remove all settings of photon
|
||||
- G4RadioactiveDecay::BuildPhysicsTable(): remove all settings of photon
|
||||
evaporation; now done in G4PhotonEvaporation and in physics list
|
||||
|
||||
- G4ITDecay::DecayIt() remove all manipulations of nuclear polarization - now
|
||||
- G4ITDecay::DecayIt() remove all manipulations of nuclear polarization - now
|
||||
done in G4PhotonEvaporation
|
||||
|
||||
16 June 2017 Dennis Wright radioactive_decay-V10-03-12
|
||||
@@ -304,14 +349,14 @@ Code received from Anselmo Meregaglia.
|
||||
12 June 2017 Dennis Wright radioactive_decay-V10-03-11
|
||||
--------------------------------------------------------
|
||||
- due to run and compile errors on Mac, go back to radioactive_decay-V10-03-07,
|
||||
remove all cached variables and delete instance of photonEvaporation in
|
||||
remove all cached variables and delete instance of photonEvaporation in
|
||||
G4RadioactiveDecay::dtor
|
||||
|
||||
3 June 2017 Dennis Wright radioactive_decay-V10-03-10
|
||||
-------------------------------------------------------
|
||||
- G4RadioactiveDecay: store polarizedNucleus as a heap object instead of stack
|
||||
in order to improve multithreading behavior
|
||||
- G4ITDecay::DecayIt: change code to deal with polarizedNucleus as a heap object
|
||||
- G4ITDecay::DecayIt: change code to deal with polarizedNucleus as a heap object
|
||||
|
||||
31 May 2017 Dennis Wright radioactive_decay-V10-03-09
|
||||
-------------------------------------------------------
|
||||
@@ -322,8 +367,8 @@ Code received from Anselmo Meregaglia.
|
||||
- G4RadioactiveDecay: add static thread local G4Fragment to act as cache for
|
||||
nuclear polarization in G4ITDecay
|
||||
- G4RadioactiveDecay::dtor: delete photonEvaporation
|
||||
- G4ITDecay: store in static G4Fragment the nuclear polarization after each
|
||||
decay so that it can be used as initial polarization for next decay
|
||||
- G4ITDecay: store in static G4Fragment the nuclear polarization after each
|
||||
decay so that it can be used as initial polarization for next decay
|
||||
|
||||
12 May 2017 Dennis Wright radioactive_decay-V10-03-07
|
||||
-------------------------------------------------------
|
||||
@@ -340,7 +385,7 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
21 February 2017 V.Ivanchenko radioactive_decay-V10-03-05
|
||||
------------------------------------------------------------
|
||||
- G4ITDecay: make daughterNucleus a pointer and store previous
|
||||
- G4ITDecay: make daughterNucleus a pointer and store previous
|
||||
state of the G4Fragment there
|
||||
- G4RadioactiveDecay - removed G4ThreadLocal G4Fragment
|
||||
|
||||
@@ -361,8 +406,8 @@ Code received from Anselmo Meregaglia.
|
||||
when previous nucleaus is reused; use floating level index
|
||||
when a new ion is created
|
||||
|
||||
- G4RadioactiveDecay: use Laurent's level tolerence level of 10 eV
|
||||
|
||||
- G4RadioactiveDecay: use Laurent's level tolerence level of 10 eV
|
||||
|
||||
10 February 2017 Dennis Wright radioactive_decay-V10-03-01
|
||||
------------------------------------------------------------
|
||||
- G4RadioactiveDecay: add static G4ThreadLocal G4Fragment polarizedNucleus
|
||||
@@ -380,22 +425,22 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
20 December 2016 Dennis Wright radioactive_decay-V10-03-00
|
||||
------------------------------------------------------------
|
||||
- G4ITDecay::G4ITDecay(): make G4PhotonEvaporation a class member
|
||||
- G4ITDecay::G4ITDecay(): make G4PhotonEvaporation a class member
|
||||
and initialize only once to avoid memory churn
|
||||
|
||||
- G4ITDecay::DecayIt(): make G4Fragment a data member to avoid its
|
||||
deletion at end of this method and keep polarization information
|
||||
deletion at end of this method and keep polarization information
|
||||
|
||||
7 November 2016 Dennis Wright radioactive_decay-V10-02-15
|
||||
-----------------------------------------------------------
|
||||
- G4RadioactiveDecay::LoadDecayTable: fix segfault by removing deletion of
|
||||
empty decay table
|
||||
- G4RadioactiveDecay::LoadDecayTable: fix segfault by removing deletion of
|
||||
empty decay table
|
||||
|
||||
4 November 2016 Dennis Wright radioactive_decay-V10-02-14
|
||||
-----------------------------------------------------------
|
||||
- G4RadioactiveDecay::LoadDecayTable: fix bug which ignores IT decay when no
|
||||
entries found in database
|
||||
|
||||
|
||||
30 September 2016 Dennis Wright radioactive_decay-V10-02-13
|
||||
-------------------------------------------------------------
|
||||
- G4RadioactiveDecay::LoadDecayTable: fix unexpected behavior when decay file
|
||||
@@ -403,14 +448,14 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
26 September 2016 Dennis Wright radioactive_decay-V10-02-12
|
||||
-------------------------------------------------------------
|
||||
- G4BetaMinusDecay::DecayIt: add protection for spectrumSampler to try and avoid
|
||||
unitialized read error
|
||||
- G4BetaMinusDecay::DecayIt: add protection for spectrumSampler to try and avoid
|
||||
unitialized read error
|
||||
- G4BetaMinusDecay::SetUpBetaSpectrumSampler: put array creation inside (e0 > 0)
|
||||
block
|
||||
|
||||
|
||||
23 September 2016 Dennis Wright radioactive_decay-V10-02-11
|
||||
-------------------------------------------------------------
|
||||
- G4BetaMinusDecay::SetUpBetaSpectrumSampler: add missing initialization of
|
||||
- G4BetaMinusDecay::SetUpBetaSpectrumSampler: add missing initialization of
|
||||
spectrumSampler
|
||||
|
||||
- G4RadioactiveDecayRate copy ctor: restore verboseLevel initialization as
|
||||
@@ -428,13 +473,13 @@ Code received from Anselmo Meregaglia.
|
||||
G4ITDecayChannel, G4KshellECDecayChannel, G4LshellECDecayChannel,
|
||||
G4MshellECDecayChannel and G4ProtonDecayChannel.hh
|
||||
|
||||
- G4RadioactiveDecay: enable reading of floating levels and entry as unique
|
||||
- G4RadioactiveDecay: enable reading of floating levels and entry as unique
|
||||
nuclides into decay tables
|
||||
|
||||
- G4RadioactiveDecay and all specific decay channel classes: allow
|
||||
- G4RadioactiveDecay and all specific decay channel classes: allow
|
||||
nuclides with floating levels to decay
|
||||
|
||||
- this tag works only with the RadioactiveDecay5.0 database or later
|
||||
- this tag works only with the RadioactiveDecay5.0 database or later
|
||||
|
||||
|
||||
25 July 2016 Vladimir Ivanchenko radioactive_decay-V10-02-08
|
||||
@@ -444,16 +489,16 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
16 June 2016 Vladimir Ivanchenko radioactive_decay-V10-02-07
|
||||
--------------------------------------------------------
|
||||
- G4RadioactiveDecay::BuildPhysicsTable: remove initialization of atomic
|
||||
deexcitation and leave only G4Exception. Initialisation should be done
|
||||
- G4RadioactiveDecay::BuildPhysicsTable: remove initialization of atomic
|
||||
deexcitation and leave only G4Exception. Initialisation should be done
|
||||
in Physics List
|
||||
|
||||
15 June 2016 Dennis Wright radioactive_decay-V10-02-06
|
||||
--------------------------------------------------------
|
||||
- G4RadioactiveDecay::BuildPhysicsTable: remove initialization of atomic
|
||||
- G4RadioactiveDecay::BuildPhysicsTable: remove initialization of atomic
|
||||
deexcitation to avoid overwriting its initialization in EM. Throw
|
||||
fatal exception if initialization not done somewhere.
|
||||
|
||||
|
||||
4 April 2016 Dennis Wright radioactive_decay-V10-02-05
|
||||
--------------------------------------------------------
|
||||
- remove obsolete class G4RIsotopeTable
|
||||
@@ -476,7 +521,7 @@ Code received from Anselmo Meregaglia.
|
||||
16 December 2015 Dennis Wright radioactive_decay-V10-02-01
|
||||
-----------------------------------------------------------
|
||||
- G4RadioactiveDecay: rename several methods and variables to more closely
|
||||
represent their meaning:
|
||||
represent their meaning:
|
||||
GetTaoTime() -> ConvolveSourceTimeProfile()
|
||||
taotime -> convolvedTime
|
||||
theDecayTable -> summedDecayTable
|
||||
@@ -495,7 +540,7 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
18 November 2015 Dennis Wright radioactive_decay-V10-01-23
|
||||
-----------------------------------------------------------
|
||||
- use method proposed by Andreas Zoglauer to temporarily fix energy
|
||||
- use method proposed by Andreas Zoglauer to temporarily fix energy
|
||||
non-conservation in IT and EC modes due to incomplete atomic relaxation
|
||||
model. Fixes bug #1756.
|
||||
|
||||
@@ -507,9 +552,9 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
29 October 2015 Dennis Wright radioactive_decay-V10-01-21
|
||||
----------------------------------------------------------
|
||||
- remove obsolete class G4BetaFermiFunction and references to it in
|
||||
- remove obsolete class G4BetaFermiFunction and references to it in
|
||||
sources.cmake, G4NuclearDecayChannel. Addresses bug report 1785.
|
||||
|
||||
|
||||
21 October 2015 Luis Sarmiento radioactive_decay-V10-01-20
|
||||
----------------------------------------------------------
|
||||
- G4NeutronDecay added to work with the "Neutron" key in the radfiles
|
||||
@@ -521,10 +566,10 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
22 September 2015 Dennis Wright radioactive_decay-V10-01-18
|
||||
------------------------------------------------------------
|
||||
- G4RIsotopeTable: add object name in ctor
|
||||
- G4RIsotopeTable: add object name in ctor
|
||||
- G4RadioactiveDecay: remove G4RIsotopeTable (now redundant) and all associated
|
||||
pointers
|
||||
|
||||
|
||||
8 September 2015 Luis Sarmiento radioactive_decay-V10-01-17
|
||||
-----------------------------------------------------------
|
||||
- G4ProtonDecay linking problem fixed.
|
||||
@@ -536,7 +581,7 @@ Code received from Anselmo Meregaglia.
|
||||
1 September 2015 Dennis Wright radioactive_decay-V10-01-15
|
||||
-----------------------------------------------------------
|
||||
- G4RIsotopeTable.cc, G4NuclearDecayChannel.cc, G4BetaDecayCorrections.cc,
|
||||
G4RadioactiveDecay.cc: add temporary checks on while loops
|
||||
G4RadioactiveDecay.cc: add temporary checks on while loops
|
||||
|
||||
30 July 2015 S Incerti, V Iv. radioactive_decay-V10-01-14
|
||||
---------------------------------------------------------
|
||||
@@ -548,36 +593,36 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
22 May 2015 L Desorgher radioactive_decay-V10-01-12
|
||||
----------------------------------------------------
|
||||
- G4ECDecay use of daughter atom instead of parent atom when calling atomic relaxation
|
||||
- G4ECDecay use of daughter atom instead of parent atom when calling atomic relaxation
|
||||
|
||||
|
||||
13 April 2015 Dennis Wright radioactive_decay-V10-01-11
|
||||
--------------------------------------------------------
|
||||
- G4RadioactivedDecay::LoadDecayTable : implement Laurent's changes back to
|
||||
level search using tolerance (now 0.1 keV)
|
||||
- G4RadioactivedDecay::AddDecayTable : bug fix in combination of branching
|
||||
- G4RadioactivedDecay::AddDecayTable : bug fix in combination of branching
|
||||
ratios (brs[1] -> brs[2] in beta+ decay)
|
||||
|
||||
10 March 2015 Dennis Wright radioactive_decay-V10-01-10
|
||||
--------------------------------------------------------
|
||||
- re-enable setting of ARM on or off (default is on) in G4ITDecay and
|
||||
- re-enable setting of ARM on or off (default is on) in G4ITDecay and
|
||||
G4ECDecay
|
||||
- also include Michel Maire's change from 5 March
|
||||
|
||||
05 March 2015 Michel Maire
|
||||
05 March 2015 Michel Maire
|
||||
--------------------------
|
||||
- G4RadioactiveDecay::BuildPhysicsTable() : add p->SetAuger(true)
|
||||
|
||||
|
||||
27 February 2015 Dennis Wright radioactive_decay-V10-01-09
|
||||
-----------------------------------------------------------
|
||||
- improved efficiency of neutrino energy sectrum calculation in
|
||||
- improved efficiency of neutrino energy sectrum calculation in
|
||||
G4BetaPlusDecay and G4BetaMinusDecay
|
||||
- use Q value and electron binding energy to calculate CM momentum
|
||||
in G4ECDecay
|
||||
|
||||
11 February 2015 Andrea Dotti radioactive_decay-V10-01-08
|
||||
-----------------------------------------------------------
|
||||
- Temporary removing sharing of decay table map between
|
||||
- Temporary removing sharing of decay table map between
|
||||
threads to verify if failures in MT disappear
|
||||
|
||||
29 January 2015 Dennis Wright radioactive_decay-V10-01-07
|
||||
@@ -593,7 +638,7 @@ Code received from Anselmo Meregaglia.
|
||||
-----------------------------------------------------------
|
||||
- G4BetaMinusDecay.cc: fix divide by zero neutrino energy
|
||||
- G4BetaPlusDecay.cc: fix zero pointer for spectrumSampler
|
||||
|
||||
|
||||
16 January 2015 Gabriele Cosmo radioactive_decay-V10-01-04
|
||||
------------------------------------------------------------
|
||||
- Corrected GNUmakefile and sources.cmake scripts to add missing dependency
|
||||
@@ -603,12 +648,12 @@ Code received from Anselmo Meregaglia.
|
||||
-----------------------------------------------------------
|
||||
- G4RadioactiveDecay::BuildPhysicsTable: change code to create new atomic
|
||||
deexcitation only if one doesn't already exist
|
||||
- G4ECDecay.cc: re-install check for zero pointer to atomic deexcitation
|
||||
- G4ECDecay.cc: re-install check for zero pointer to atomic deexcitation
|
||||
|
||||
12 January 2015 Dennis Wright radioactive_decay-V10-01-02
|
||||
-----------------------------------------------------------
|
||||
- G4RadioactiveDecay::BuildPhysicsTable : register G4UAtomicDeexcitation to
|
||||
G4LossTableManager so that electron shells can be found. Set Fluo and
|
||||
G4LossTableManager so that electron shells can be found. Set Fluo and
|
||||
Auger flags to true, PIXE to false
|
||||
- G4ECDecay.cc: re-arrange code to accommodate above change
|
||||
|
||||
@@ -635,27 +680,27 @@ Code received from Anselmo Meregaglia.
|
||||
- G4NuclearDecayChannel::DecayIt: allow up to three fragments from
|
||||
G4PhotoEvaporation::BreakUp. This fixes the exception seen when there is
|
||||
more than one gamma
|
||||
|
||||
|
||||
03 November 2014 Dennis Wright radioactive_decay-V10-00-09
|
||||
----------------------------------------------------------
|
||||
- added new class G4AlphaDecay to streamline inheritance chain and use Q to
|
||||
calculate decay product energies
|
||||
- G4RadioactiveDecay.cc: use G4AlphaDecay instead of G4AlphaDecayChannel
|
||||
|
||||
- G4NuclearDecayChannel.cc: check number of gammas returned from
|
||||
G4PhotoEvaporation and take different action in each case of 0, 1, or 2
|
||||
- G4NuclearDecayChannel.cc: check number of gammas returned from
|
||||
G4PhotoEvaporation and take different action in each case of 0, 1, or 2
|
||||
gammas
|
||||
|
||||
21 October 2014 Dennis Wright radioactive_decay-V10-00-08
|
||||
----------------------------------------------------------
|
||||
- G4RadioactiveDecay dtor: add delete dkmap to fix memory leak
|
||||
- G4RadioactiveDecay.hh : set size of decayWindows to 100 to fix array overrun
|
||||
|
||||
|
||||
13 October 2014 Dennis Wright radioactive_decay-V10-00-07
|
||||
----------------------------------------------------------
|
||||
- G4NuclearDecayChannel, G4BetaDecayCorrections, G4RadioactiveDecay: made
|
||||
several more variables const
|
||||
|
||||
- G4NuclearDecayChannel, G4BetaDecayCorrections, G4RadioactiveDecay: made
|
||||
several more variables const
|
||||
|
||||
13 October 2014 Dennis Wright radioactive_decay-V10-00-06
|
||||
----------------------------------------------------------
|
||||
- G4RadioactiveDecay::GetMeanFreePath(): make local pointer to
|
||||
@@ -684,7 +729,7 @@ Code received from Anselmo Meregaglia.
|
||||
- G4RadioactiveDecay::GetMeanFreePath: tau = -1001 now indicates a nuclide with
|
||||
very short lifetime or that was not listed in G4NuclideTable. In that case,
|
||||
set pathlength to DBL_MIN. This fixes bug #1582.
|
||||
|
||||
|
||||
20 February 2014 Dennis Wright radioactive_decay-V10-00-01
|
||||
-----------------------------------------------------------
|
||||
- G4RadioactiveDecayMode.hh, .cc: add double beta- decay and double beta+ decay
|
||||
@@ -692,7 +737,7 @@ Code received from Anselmo Meregaglia.
|
||||
- G4RadioactiveDecay.cc: add dummies for double beta- decay and double beta+
|
||||
decay in order to partially fix Bug 1560: long ground state lifetimes with no decay
|
||||
scheme
|
||||
|
||||
|
||||
6 February 2014 Dennis Wright radioactive_decay-V10-00-00
|
||||
----------------------------------------------------------
|
||||
- G4NuclearDecayChannel::DecayIt: remove enforcement of single gamma emission
|
||||
@@ -723,13 +768,13 @@ Code received from Anselmo Meregaglia.
|
||||
-----------------------------------------------------------
|
||||
- fixed bugs causing decay chains to stop prematurely
|
||||
- G4NuclearDecayChannel::DecayIt:
|
||||
in the case of IT, get excitation energy from parent nucleus, not daughter
|
||||
in the case of IT, get excitation energy from parent nucleus, not daughter
|
||||
(const G4Ions*)(G4MT_parent))->GetExcitationEnergy()
|
||||
remove subtraction of gamma energy from variable daughterExcitation
|
||||
|
||||
- G4RadioactiveDecay::GetDecayTable: search internal library of decay tables
|
||||
using name of ion, not integer key - this fixes the "level 9" problem
|
||||
|
||||
|
||||
7 November 2013 Dennis Wright radioactive_decay-V09-06-18
|
||||
----------------------------------------------------------
|
||||
- G4NuclearDecayChannel::DecayIt: allow explicit decay of IT channels
|
||||
@@ -746,24 +791,24 @@ Code received from Anselmo Meregaglia.
|
||||
----------------------------------------------------------
|
||||
- G4NuclearDecayChannel::DecayIt: add an electron mass to the parent nucleus
|
||||
in case of electron capture. This fixes the G4GeneralPhaseSpaceDecay::Pmx()
|
||||
mass deficit warning.
|
||||
mass deficit warning.
|
||||
|
||||
4 October 2013 Dennis Wright radioactive_decay-V09-06-15
|
||||
---------------------------------------------------------
|
||||
- G4NuclearDecayChannel: change class member daughterExcitation
|
||||
from TLS back to plain G4double - fixes infinite loop in decay chain
|
||||
|
||||
|
||||
1 October 2013 Makoto Asai radioactive_decay-V09-06-14
|
||||
--------------------------------------------------------
|
||||
- G4NuclearDecayChannel : Fixed thread-safety and reproducability issues.
|
||||
|
||||
9 September 2013 Makoto Asai radioactive_decay-V09-06-13
|
||||
----------------------------------------------------------
|
||||
----------------------------------------------------------
|
||||
- G4RadioactiveDecay::LoadDecayTable() : modify to read data file only once
|
||||
for multi-threaded mode.
|
||||
|
||||
5 September 2013 Dennis Wright radioactive_decay-V09-06-12
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
- G4NuclearDecayChannel::DecayIt() : remove unused variable and argument
|
||||
(theParentMass)
|
||||
|
||||
@@ -779,31 +824,31 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
- G4NuclearDecayChannel: use integer metastable state levels instead of
|
||||
energy values. Where only energy is known search for nearest integer
|
||||
level.
|
||||
level.
|
||||
|
||||
12 July 2013 Dennis Wright radioactive_decay-V09-06-09
|
||||
--------------------------------------------------------
|
||||
- G4RadioactiveDecay:
|
||||
to accommodate multi-threading remove the setting of nuclear decay tables
|
||||
to G4ParticleDefinition and replace with local decay table map
|
||||
|
||||
|
||||
remove IsLoaded() method and data member LoadedNuclei which are now
|
||||
redundant due to above changes
|
||||
|
||||
|
||||
20 June 2013 Andrea Dotti radioactive_decay-V09-06-08
|
||||
--------------------------------------------------------
|
||||
- G4RIsotopeTable.cc : fix bug in checking if DB files have
|
||||
- G4RIsotopeTable.cc : fix bug in checking if DB files have
|
||||
been loaded (accessing map without protection)
|
||||
|
||||
20 June 2013 Dennis Wright radioactive_decay-V09-06-07
|
||||
--------------------------------------------------------
|
||||
- G4RadioactiveDecay.cc : fix memory leak by adding
|
||||
- G4RadioactiveDecay.cc : fix memory leak by adding
|
||||
delete theIsotopeTable;
|
||||
to dtor
|
||||
|
||||
18 June 2013 V. Ivanchenko radioactive_decay-V09-06-06
|
||||
--------------------------------------------------------
|
||||
- G4RadioactiveDecay, G4NuclearDecayChannel,
|
||||
- G4RadioactiveDecay, G4NuclearDecayChannel,
|
||||
G4BetaMinusDecayChannel, G4BetaPlusDecayChannel - use
|
||||
typedefs from Randomize.hh instead of CLHEP
|
||||
|
||||
@@ -829,10 +874,10 @@ Code received from Anselmo Meregaglia.
|
||||
------------------------------------------------------------
|
||||
- G4RadioactiveDecay: fix partly bug 1359
|
||||
-Force the boost of the decay products in line 1598
|
||||
-The parent energy considered in the boost is the total energy of the fully stripped parent ion rather than
|
||||
-The parent energy considered in the boost is the total energy of the fully stripped parent ion rather than
|
||||
the total energy of dynamic ion where the energy of shell electrons is taken into account
|
||||
-Some difference in momentum and energy balance is still observed but much less than before
|
||||
|
||||
-Some difference in momentum and energy balance is still observed but much less than before
|
||||
|
||||
|
||||
13 November 2012 Dennis Wright radioactive_decay-V09-05-12
|
||||
------------------------------------------------------------
|
||||
@@ -844,10 +889,10 @@ Code received from Anselmo Meregaglia.
|
||||
04 October 2012 Gabriele Cosmo radioactive_decay-V09-05-11
|
||||
------------------------------------------------------------
|
||||
- G4RIsotopeTable.cc: added inclusion of units header...
|
||||
|
||||
|
||||
03 October 2012 Vladimir Ivantchenko radioactive_decay-V09-05-10
|
||||
------------------------------------------------------------------
|
||||
- G4RadioactiveDecay - added isInitialised flag to reduce
|
||||
- G4RadioactiveDecay - added isInitialised flag to reduce
|
||||
initialisation printout
|
||||
|
||||
03 October 2012 Vladimir Ivantchenko radioactive_decay-V09-05-09
|
||||
@@ -862,7 +907,7 @@ Code received from Anselmo Meregaglia.
|
||||
- G4RadioactiveDecay - modified BuildPhysicsTable method: substitute
|
||||
obsolete methods to access PhysicsVector, add spline, add
|
||||
initialisation of atomic de-excitation (needed for the case when
|
||||
radioactive decay is used alone), modified GetMeanFreePath -
|
||||
radioactive decay is used alone), modified GetMeanFreePath -
|
||||
sabstitute obsolete access method to the PhysicsVector
|
||||
- source.cmake and GNUmakefile - remove dependence on emlowenergy
|
||||
|
||||
@@ -878,12 +923,12 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
27 July 2012 Laurent Desorgher radioactive_decay-V09-05-05
|
||||
------------------------------------------------------------
|
||||
-Set a flag isAllVolumesMode in G4RadioactiveDecay to ensure that when
|
||||
-Set a flag isAllVolumesMode in G4RadioactiveDecay to ensure that when
|
||||
the geometry is changed, the AllVolume Mode is still considered.
|
||||
Problem reported by Tatsumi Koi.
|
||||
|
||||
Problem reported by Tatsumi Koi.
|
||||
|
||||
-Use of evaporation nuclear level data in G4RIsotope::GetMeanLifeTime
|
||||
for getting the mean life of an exited nuclei, when it is not provided in
|
||||
for getting the mean life of an exited nuclei, when it is not provided in
|
||||
radioactive decay database. Solving of a problem reported by Tatsumi Koi.
|
||||
|
||||
|
||||
@@ -907,19 +952,19 @@ Code received from Anselmo Meregaglia.
|
||||
to fix discontinuity in electron screening energy
|
||||
|
||||
Above changes suggested by Ryan Fitzgerald (NIST)
|
||||
|
||||
|
||||
11 June 2012 Dennis Wright radioactive_decay-V09-05-02
|
||||
--------------------------------------------------------
|
||||
- replace shadowed variable "s" in G4NucleusLimits.cc, G4BetaDecayType.cc
|
||||
and G4RadioactiveDecayMode.cc. Replace shadowed variable "theDecayTable"
|
||||
in G4RadioactiveDecay.cc
|
||||
|
||||
|
||||
01 May 2012 Laurent Desorgher radioactive_decay-V09-05-01
|
||||
---------------------------------------------------------
|
||||
- G4RIsotopeTable : Add the reading of user data files in order to take
|
||||
into account the life time given in these files. (Bug reported by M. Maire)
|
||||
- G4RadioactiveDecay: Put the activation development of Fan Lei from trunk in
|
||||
the tagged release.
|
||||
the tagged release.
|
||||
|
||||
17 March 2012 Dennis Wright radioactive_decay-V09-05-00
|
||||
---------------------------------------------------------
|
||||
@@ -929,7 +974,7 @@ Code received from Anselmo Meregaglia.
|
||||
23 November 2011 L.Desorgher(radioactive_decay-V09-04-14)
|
||||
---------------------------------
|
||||
- G4NuclearDecayChannel.cc: add initialisation of dynamicDaughter in
|
||||
line 455 to avoid segmentation fault for some decays.
|
||||
line 455 to avoid segmentation fault for some decays.
|
||||
|
||||
20 November 2011 V.Ivanchenko(radioactive_decay-V09-04-13)
|
||||
---------------------------------
|
||||
@@ -950,7 +995,7 @@ Code received from Anselmo Meregaglia.
|
||||
--G4RadioactiveDecay:
|
||||
-Add the reading of Spontaneous Fission mode from data files
|
||||
--G4RadioactiveDecayMode:
|
||||
-Add SpFission mode
|
||||
-Add SpFission mode
|
||||
|
||||
18 October 2011 Laurent Desorgher(radioactive_decay-V09-04-10)
|
||||
---------------------------------
|
||||
@@ -961,7 +1006,7 @@ Code received from Anselmo Meregaglia.
|
||||
--G4RadioactiveDecayChannel:
|
||||
-Correction to allow the atomic relaxation of de-excited nuclei produce
|
||||
also during beta and alpha decay. Problem ersaed and solution proposed
|
||||
by Ko Abe
|
||||
by Ko Abe
|
||||
--G4RadioactiveDecayMessenger:
|
||||
-Add macro commands /grdm/setRadioactiveDecayFile and
|
||||
/grdm/setPhotoEvaporationFile
|
||||
@@ -983,12 +1028,12 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
- upgrade to new G4Exception. Files affected: G4RadioactiveDecay.cc,
|
||||
G4NuclearDecayChannel.cc
|
||||
|
||||
|
||||
9 September 2011 Dennis Wright (radioactive_decay-V09-04-06)
|
||||
--------------------------------------------------------------
|
||||
- G4RadioactiveDecay.cc: mistakenly removed H. Kurasige's local time fix
|
||||
from tag -04. Re-instate it here.
|
||||
|
||||
|
||||
9 September 2011 Dennis Wright (radioactive_decay-V09-04-05)
|
||||
--------------------------------------------------------------
|
||||
- G4RadioactiveDecay.hh, .cc: add new Fermi function and forbidden beta
|
||||
@@ -1001,7 +1046,7 @@ Code received from Anselmo Meregaglia.
|
||||
---------------------------------------------------------
|
||||
- G4RadioactiveDecay.cc : add H. Kurasige's fix of local decay time
|
||||
(bug report 1224)
|
||||
|
||||
|
||||
5 June 2011 Dennis Wright (radioactive_decay-V09-04-03)
|
||||
----------------------------------------------------------------
|
||||
- G4RadioactiveDecay.cc: set process subtype (fRadioactiveDecay = 211)
|
||||
@@ -1018,14 +1063,14 @@ Code received from Anselmo Meregaglia.
|
||||
31 May 2011 L.Desorgher (radioactive_decay-V09-04-01)
|
||||
------------------------------------------------------
|
||||
- Fixing to bug 1662 (remove of a warning).
|
||||
Adding of a check for maximum shell number, in line 438-440
|
||||
of G4NuclearDecayChannel.
|
||||
Adding of a check for maximum shell number, in line 438-440
|
||||
of G4NuclearDecayChannel.
|
||||
|
||||
19 May 2011 Dennis Wright (SLAC) (radioactive_decay-V09-04-00)
|
||||
---------------------------------------------------------------
|
||||
- G4RadioactiveDecay.cc: fix gcc 4.6 warning: variable j set but not
|
||||
used
|
||||
|
||||
|
||||
3 December 2010 Dennis Wright (SLAC) (radioactive_decay-V09-03-05)
|
||||
--------------------------------------------------------------------
|
||||
- G4NuclearDecayChannel: remove unused variables BetaSimple, FermiFN
|
||||
@@ -1036,8 +1081,8 @@ Code received from Anselmo Meregaglia.
|
||||
SBin[99], SProfile[99] to SBIN[100], SProfile[100]
|
||||
- G4RadioactiveDecay::SetDecayBias(): fix array overrun, change
|
||||
DBin[99], DProfile[99] to DBIN[100], DProfile[100]
|
||||
- G4RadioactiveDecay::DecayIt(): to avoid possible dereferencing of
|
||||
zero ptr when in branching ratio bias mode, fill tempprods as if no
|
||||
- G4RadioactiveDecay::DecayIt(): to avoid possible dereferencing of
|
||||
zero ptr when in branching ratio bias mode, fill tempprods as if no
|
||||
biasing active
|
||||
|
||||
- G4RadioactiveDecayRate ctor: initialize Z, A, E, generation and
|
||||
@@ -1045,15 +1090,15 @@ Code received from Anselmo Meregaglia.
|
||||
|
||||
18 November 2010 F.Lei (radioactive_decay-V09-03-04)
|
||||
-----------------------------------------------------
|
||||
- src/G4RadioactiveDecay.cc:1593 get rid of the compalition warning with
|
||||
- src/G4RadioactiveDecay.cc:1593 get rid of the compalition warning with
|
||||
gcc4.5.1
|
||||
|
||||
17 November 2010 F.Lei (radioactive_decay-V09-03-03)
|
||||
- Completed the implementation of generating the activity table in VR mode
|
||||
- Set the default h-l threshold to 1 micros in VR mode.
|
||||
- General improvement in VR mode implementation.
|
||||
- General improvement in VR mode implementation.
|
||||
- G4RadioactiveDecaymessenger.cc: icmCMD,armCMD & hlThreshold are available
|
||||
at all states.
|
||||
at all states.
|
||||
|
||||
11 November 2010 F.Lei
|
||||
- further updates to G4RadioactivityTable.hh .cc and G4RadioactiveDecay.hh .cc
|
||||
@@ -1079,27 +1124,27 @@ Code received from Anselmo Meregaglia.
|
||||
line 1624: include the track weight in the weight calculation
|
||||
line 1627: add the rate to the radioactivity tables
|
||||
- improved formatting of all the class files
|
||||
|
||||
|
||||
|
||||
11 Oct 2010 F. Lei (radioactive_decay-V09-03-01)
|
||||
|
||||
- G4RadioactiveDecay.cc: apply SetICM(), SetARM() & SetHLThreshold() in all decay modes
|
||||
- G4RadioactiveDecay.cc: halflifethreshold = 0.*second;
|
||||
- G4RadioactiveDecaymessenger.cc: removed (>0.) restrictions to hlCMD
|
||||
- G4RadioactiveDecaymessenger.cc: icmCMD,armCMD & hlCMD are available at PreInit state only.
|
||||
- G4RadioactiveDecaymessenger.cc: icmCMD,armCMD & hlCMD are available at PreInit state only.
|
||||
|
||||
26 May 2010 Dennis Wright (radioactive_decay-V09-03-00)
|
||||
-------------------------------------------------------
|
||||
tag HEAD to submit for testing
|
||||
|
||||
11 May 2010 F.Lei
|
||||
- G4RadioactiveDecay.cc::LoadDecayTable:line 931 create a decaytable for isomers not included in RDM database and assume
|
||||
- G4RadioactiveDecay.cc::LoadDecayTable:line 931 create a decaytable for isomers not included in RDM database and assume
|
||||
they all under go IT decay.
|
||||
- G4RadioactiveDecay.cc: line 1434 after DoDecay() check if there is any secondary produced. Kill the track if not to
|
||||
- G4RadioactiveDecay.cc: line 1434 after DoDecay() check if there is any secondary produced. Kill the track if not to
|
||||
prevent it entering a infinite loop
|
||||
- G4RadioactiveDecay.cc: line 1459. make sure the propertime is positive. negative case occures when the isomer is not in
|
||||
RDM database and its f-l is set to -1 by default.
|
||||
- G4NuclearDecayChannel.cc: Added initialisation to all three constructors:
|
||||
RDM database and its f-l is set to -1 by default.
|
||||
- G4NuclearDecayChannel.cc: Added initialisation to all three constructors:
|
||||
halflifethreshold = 1e-6*second;
|
||||
applyICM = true;
|
||||
applyARM = true;
|
||||
@@ -1111,9 +1156,9 @@ tag HEAD to submit for testing
|
||||
applied SetICM() SetARM() and SetHLThreshold() to a decay channel is created.
|
||||
- G4NuclearDecayChannel.cc: line 396. Limit the shell index to < 7, as required by the ARM.
|
||||
line 329: change to use BreakUp rather than BreakItUp so to limit to one transition per step when ICM is applied (bug #1001)
|
||||
(Note: changes have also been made in 30/08/2008 to use the correct atomic shell index and to conserve energy atfer ARM,
|
||||
(Note: changes have also been made in 30/08/2008 to use the correct atomic shell index and to conserve energy atfer ARM,
|
||||
these problems were pointed out by Andreas Zoglauer in the bug report).
|
||||
- G4RadioactiveDecay.hh & G4NuclearDecayChannel.hh: added private member data "applyICM" "applyARM" "halflifethresold"
|
||||
- G4RadioactiveDecay.hh & G4NuclearDecayChannel.hh: added private member data "applyICM" "applyARM" "halflifethresold"
|
||||
and their public Set methods SetICM(), SetARM() and SetHLThreshold().
|
||||
- G4RadioactiveDecaymessenger: added the UICommands for SetICM, SETARM and SetHLThreshold.
|
||||
|
||||
@@ -1127,13 +1172,13 @@ tag HEAD to submit for testing
|
||||
17 June 2008 Fan Lei (radioactive_decay-V09-01-01)
|
||||
- GRIsotopeTable.cc
|
||||
i) change default verbosity level to 1
|
||||
ii) correct use G4cout instead of G4cerr
|
||||
ii) correct use G4cout instead of G4cerr
|
||||
|
||||
01 May 2008 Fan Lei (radioactive_decay-V09-01-00)
|
||||
- G4NuclearDecayChannel.cc
|
||||
i) ARM is no longer applied in photon-evaporation for IT mode and
|
||||
is now applied at the end in DecayIt()
|
||||
ii) use the correct shell index in appling ARM and switch on Auger
|
||||
i) ARM is no longer applied in photon-evaporation for IT mode and
|
||||
is now applied at the end in DecayIt()
|
||||
ii) use the correct shell index in appling ARM and switch on Auger
|
||||
electron production
|
||||
iii) check the residual kinetic energy after ARM and add it to the atom
|
||||
|
||||
@@ -1145,17 +1190,17 @@ tag HEAD to submit for testing
|
||||
'-' : unsafe use of type 'bool' in operation
|
||||
|
||||
10 November 2006 Fan Lei (radioactive_decay-V08-01-01)
|
||||
- G4NuclearDecayChannel.cc: added the capability of handling decay emission of proton or neutron
|
||||
for decays of He5 (alpha+n) and Li5 (alpha+p). bug#852
|
||||
- G4NuclearDecayChannel.cc: added the capability of handling decay emission of proton or neutron
|
||||
for decays of He5 (alpha+n) and Li5 (alpha+p). bug#852
|
||||
|
||||
5 July 2006 Dennis Wright (radioactive_decay-V08-01-00)
|
||||
- G4NuclearDecayChannel::BetaDecayIt() : another check for negative sqrt
|
||||
- G4NuclearDecayChannel::BetaDecayIt() : another check for negative sqrt
|
||||
argument in daughtermomentum[1].
|
||||
|
||||
29 May 2006 Dennis Wright (radioactive_decay-V08-00-03)
|
||||
(tagging change by Fan Lei on 17 Feb 2006)
|
||||
- G4RadioactiveDecay.cc : in method IsApplicable() add test for negative
|
||||
lifetime
|
||||
- G4RadioactiveDecay.cc : in method IsApplicable() add test for negative
|
||||
lifetime
|
||||
|
||||
16 February 2006 Vladimir Ivanchenko (radioactive_decay-V08-00-02)
|
||||
- G4RadioactiveDecay::IsApplicable - fix problem connected with
|
||||
@@ -1190,19 +1235,19 @@ for decays of He5 (alpha+n) and Li5 (alpha+p). bug#852
|
||||
- Added G4MshellECDecayChannel.hh and changed G4RadioactiveDecay.cc accordingly.
|
||||
|
||||
09 Nov 2004 Fan Lei
|
||||
- Changes to G4RaioactiveDecay.cc (radioactive_decay-V06-02-00)
|
||||
i) better handling to incomplete data files;
|
||||
ii) correct treatment of metastables as initial tracks in VR mode;
|
||||
iii) default decay window in VR model to 9.9x10^9 - 10^10 seconds;
|
||||
iv) individual time stamp for splitted isotope;
|
||||
v) bug fix #662;
|
||||
- Changes to G4RaioactiveDecay.cc (radioactive_decay-V06-02-00)
|
||||
i) better handling to incomplete data files;
|
||||
ii) correct treatment of metastables as initial tracks in VR mode;
|
||||
iii) default decay window in VR model to 9.9x10^9 - 10^10 seconds;
|
||||
iv) individual time stamp for splitted isotope;
|
||||
v) bug fix #662;
|
||||
vi) bug fix #396.
|
||||
- Changes to G4NuclearDecayChannel.cc
|
||||
i) apply atomic relaxation only to 5 < z < 101
|
||||
ii) no more fast/slow beta decay mode with a faster 3-body decay implementation.
|
||||
- G4RIsotopeTable.cc: line 223, no longer reset the excitaion energy.
|
||||
- G4RIsotopeTable.cc: line 223, no longer reset the excitaion energy.
|
||||
|
||||
|
||||
|
||||
12 Jun 2003 Gabriele Cosmo (radiative_decay-V05-01-00)
|
||||
- Fix in G4ITDecayChannel.hh and G4RadioactiveDecay.cc for porting
|
||||
on Windows .NET compiler: changed signature in constructor for
|
||||
@@ -1229,14 +1274,14 @@ for decays of He5 (alpha+n) and Li5 (alpha+p). bug#852
|
||||
for the geometry domain (tag "geometry-V03-01-00").
|
||||
|
||||
01 Nov 2000 Fan Lei (radiative_decay-V02-00-02)
|
||||
- Added the missing line " ee = e0+1.; " to line 763 in
|
||||
- Added the missing line " ee = e0+1.; " to line 763 in
|
||||
G4RadioactiveDecay.cc
|
||||
|
||||
|
||||
27th Oct 200 fan Lei (radiative_decay-V02-00-01)
|
||||
- Add a fast simulation mode for beta decays
|
||||
|
||||
25th Oct 2000 fan lei (radiative_decay-V02-00-00)
|
||||
- Added 'const' to line 1185 of G4RadioactiveDecay.cc to cowork with
|
||||
- Added 'const' to line 1185 of G4RadioactiveDecay.cc to cowork with
|
||||
tag Track-V02-00-00
|
||||
|
||||
27th June 2000 Fan Lei (radiative_decay-V01-01-04)
|
||||
|
||||
+7
-15
@@ -61,21 +61,13 @@ class G4RadioactivationMessenger: public G4UImessenger
|
||||
private:
|
||||
G4Radioactivation* theRadioactivationContainer;
|
||||
|
||||
G4UIdirectory* old_grdmDirectory; // To be removed in G4 11.0
|
||||
G4UIdirectory* rdmDirectory;
|
||||
G4UIcmdWithABool* old_analoguemcCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithABool* analoguemcCmd;
|
||||
G4UIcmdWithAString* old_sourcetimeprofileCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithAString* sourcetimeprofileCmd;
|
||||
G4UIcmdWithAString* old_decaybiasprofileCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithAString* decaybiasprofileCmd;
|
||||
G4UIcmdWithABool* old_brbiasCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithABool* brbiasCmd;
|
||||
G4UIcmdWithAnInteger* old_splitnucleiCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithAnInteger* splitnucleiCmd;
|
||||
G4UIcmdWithADoubleAndUnit* old_hlthCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithADoubleAndUnit* hlthCmd;
|
||||
|
||||
G4UIdirectory* rdmDirectory;
|
||||
G4UIcmdWithABool* analoguemcCmd;
|
||||
G4UIcmdWithAString* sourcetimeprofileCmd;
|
||||
G4UIcmdWithAString* decaybiasprofileCmd;
|
||||
G4UIcmdWithABool* brbiasCmd;
|
||||
G4UIcmdWithAnInteger* splitnucleiCmd;
|
||||
G4UIcmdWithADoubleAndUnit* hlthCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,372 +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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4RadioactiveDecay_h
|
||||
#define G4RadioactiveDecay_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: G4RadioactiveDecay.hh
|
||||
//
|
||||
// Version: 0.b.4
|
||||
// Date: 14/04/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
// 17 October 2011, L Desorgher - Add the method AddUserDecayDataFile
|
||||
//
|
||||
// 01 June 2011, M. Kelsey -- Add directional biasing interface to allow for
|
||||
// "collimation" of decay daughters.
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
// 13 April 2000, F Lei, DERA UK
|
||||
// 0.b.4 release. No change to this file
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4VRestDiscreteProcess.hh"
|
||||
#include "G4ParticleChangeForRadDecay.hh"
|
||||
|
||||
#include "G4NucleusLimits.hh"
|
||||
#include "G4RadioactiveDecayRatesToDaughter.hh"
|
||||
#include "G4RadioactiveDecayChainsFromParent.hh"
|
||||
#include "G4RadioactivityTable.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4Threading.hh"
|
||||
#include "G4RadioactiveDecayMode.hh"
|
||||
|
||||
class G4Fragment;
|
||||
class G4RadioactiveDecaymessenger;
|
||||
class G4PhotonEvaporation;
|
||||
|
||||
typedef std::vector<G4RadioactiveDecayChainsFromParent> G4RadioactiveDecayParentChainTable;
|
||||
typedef std::vector<G4RadioactiveDecayRatesToDaughter> G4RadioactiveDecayRates;
|
||||
typedef std::map<G4String, G4DecayTable*> DecayTableMap;
|
||||
|
||||
|
||||
class G4RadioactiveDecay : public G4VRestDiscreteProcess
|
||||
{
|
||||
// class description
|
||||
|
||||
// Implementation of the radioactive decay process which simulates the
|
||||
// decays of radioactive nuclei. These nuclei are submitted to RDM as
|
||||
// G4Ions. The required half-lives and decay schemes are retrieved from
|
||||
// the Radioactivity database which was derived from ENSDF.
|
||||
// All decay products are submitted back to the particle tracking process
|
||||
// through the G4ParticleChangeForRadDecay object.
|
||||
// class description - end
|
||||
|
||||
public: // with description
|
||||
|
||||
G4RadioactiveDecay(const G4String& processName="RadioactiveDecay");
|
||||
~G4RadioactiveDecay();
|
||||
|
||||
virtual void ProcessDescription(std::ostream& outFile) const;
|
||||
|
||||
// Return true if the specified isotope is
|
||||
// 1) defined as "nucleus" and
|
||||
// 2) it is within theNucleusLimit
|
||||
G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
// Return decay table if it exists, if not, load it from file
|
||||
G4DecayTable* GetDecayTable(const G4ParticleDefinition*);
|
||||
|
||||
// Select a logical volume in which RDM applies
|
||||
void SelectAVolume(const G4String aVolume);
|
||||
|
||||
// Remove a logical volume from the RDM applied list
|
||||
void DeselectAVolume(const G4String aVolume);
|
||||
|
||||
// Select all logical volumes for the application of RDM
|
||||
void SelectAllVolumes();
|
||||
|
||||
// Remove all logical volumes from RDM applications
|
||||
void DeselectAllVolumes();
|
||||
|
||||
// Set the decay biasing scheme using the data in "filename"
|
||||
void SetDecayBias(G4String filename);
|
||||
|
||||
// Set the half-life threshold for isomer production
|
||||
void SetHLThreshold(G4double hl) {halflifethreshold = hl;}
|
||||
|
||||
// Enable/disable ICM
|
||||
void SetICM(G4bool icm) {applyICM = icm;}
|
||||
|
||||
// Enable/disable ARM
|
||||
void SetARM(G4bool arm) {applyARM = arm;}
|
||||
|
||||
// Set source exposure function using histograms in "filename"
|
||||
void SetSourceTimeProfile(G4String filename);
|
||||
|
||||
G4bool IsRateTableReady(const G4ParticleDefinition &);
|
||||
// Returns true if the coefficient and decay time table for all the
|
||||
// descendants of the specified isotope are ready.
|
||||
// used in VR decay mode only
|
||||
|
||||
void CalculateChainsFromParent(const G4ParticleDefinition&);
|
||||
// Calculates the coefficient and decay time table for all the descendents
|
||||
// of the specified isotope. Adds the calculated table to the private data
|
||||
// member "theParentChainTable".
|
||||
// used in VR decay mode only
|
||||
|
||||
void GetChainsFromParent(const G4ParticleDefinition&);
|
||||
// Used to retrieve the coefficient and decay time table for all the
|
||||
// descendants of the specified isotope from "theParentChainTable"
|
||||
// and place it in "chainsFromParent".
|
||||
// used in VR decay mode only
|
||||
|
||||
void SetDecayRate(G4int,G4int,G4double, G4int, std::vector<G4double>,
|
||||
std::vector<G4double>);
|
||||
// Sets "theDecayRate" with data supplied in the arguements.
|
||||
// used in VR decay mode only
|
||||
|
||||
std::vector<G4RadioactivityTable*> GetTheRadioactivityTables()
|
||||
{return theRadioactivityTables;}
|
||||
// Return vector of G4Radioactivity map - should be used in VR mode only
|
||||
|
||||
G4DecayTable* LoadDecayTable(const G4ParticleDefinition& theParentNucleus);
|
||||
// Load the decay data of isotope theParentNucleus
|
||||
|
||||
void AddUserDecayDataFile(G4int Z, G4int A,G4String filename);
|
||||
// Allow the user to replace the radio-active decay data provided in Geant4
|
||||
// by its own data file for a given isotope
|
||||
|
||||
inline void SetVerboseLevel(G4int value) {verboseLevel = value;}
|
||||
// Sets the VerboseLevel which controls duggering display
|
||||
|
||||
inline G4int GetVerboseLevel() const {return verboseLevel;}
|
||||
// Returns the VerboseLevel which controls level of debugging output
|
||||
|
||||
inline void SetNucleusLimits(G4NucleusLimits theNucleusLimits1)
|
||||
{theNucleusLimits = theNucleusLimits1 ;}
|
||||
// Sets theNucleusLimits which specifies the range of isotopes
|
||||
// the G4RadioactiveDecay applies.
|
||||
|
||||
inline G4NucleusLimits GetNucleusLimits() const
|
||||
{return theNucleusLimits;}
|
||||
// Returns theNucleusLimits which specifies the range of isotopes
|
||||
// the G4RadioactiveDecay applies
|
||||
|
||||
// Controls whether G4RadioactiveDecay runs in analogue mode or
|
||||
// variance reduction mode. SetBRBias, SetSplitNuclei and
|
||||
// SetSourceTimeProfile all turn off analogue mode and use VR mode
|
||||
inline void SetAnalogueMonteCarlo (G4bool r ) {
|
||||
AnalogueMC = r;
|
||||
if (!AnalogueMC) halflifethreshold = 1e-6*CLHEP::s;
|
||||
}
|
||||
|
||||
// Controls whether G4RadioactiveDecay uses fast beta simulation mode
|
||||
// Currently does nothing - kept for backward compatibility
|
||||
inline void SetFBeta (G4bool r ) { FBeta = r; }
|
||||
|
||||
// Returns true if the simulation is an analogue Monte Carlo, and false if
|
||||
// any of the biassing schemes have been selected.
|
||||
inline G4bool IsAnalogueMonteCarlo () {return AnalogueMC;}
|
||||
|
||||
// Sets whether branching ration bias scheme applies.
|
||||
inline void SetBRBias(G4bool r) {
|
||||
BRBias = r;
|
||||
SetAnalogueMonteCarlo(0);
|
||||
}
|
||||
|
||||
// Sets the number of times a nucleus will decay when biased
|
||||
inline void SetSplitNuclei(G4int r) {
|
||||
NSplit = r;
|
||||
SetAnalogueMonteCarlo(0);
|
||||
}
|
||||
|
||||
// Returns the nuclear splitting number
|
||||
inline G4int GetSplitNuclei () {return NSplit;}
|
||||
|
||||
inline void SetDecayDirection(const G4ThreeVector& theDir) {
|
||||
forceDecayDirection = theDir.unit();
|
||||
}
|
||||
|
||||
inline const G4ThreeVector& GetDecayDirection() const {
|
||||
return forceDecayDirection;
|
||||
}
|
||||
|
||||
inline void SetDecayHalfAngle(G4double halfAngle=0.*CLHEP::deg) {
|
||||
forceDecayHalfAngle = std::min(std::max(0.*CLHEP::deg,halfAngle),180.*CLHEP::deg);
|
||||
}
|
||||
|
||||
inline G4double GetDecayHalfAngle() const {return forceDecayHalfAngle;}
|
||||
|
||||
// Force direction (random within half-angle) for "visible" daughters
|
||||
// (applies to electrons, positrons, gammas, neutrons, protons or alphas)
|
||||
inline void SetDecayCollimation(const G4ThreeVector& theDir,
|
||||
G4double halfAngle = 0.*CLHEP::deg) {
|
||||
SetDecayDirection(theDir);
|
||||
SetDecayHalfAngle(halfAngle);
|
||||
}
|
||||
|
||||
void BuildPhysicsTable(const G4ParticleDefinition &);
|
||||
|
||||
G4VParticleChange* DecayIt(const G4Track& theTrack,
|
||||
const G4Step& theStep);
|
||||
|
||||
protected:
|
||||
|
||||
G4DecayProducts* DoDecay(const G4ParticleDefinition& theParticleDef);
|
||||
|
||||
// Apply directional bias for "visible" daughters (e+-, gamma, n, p, alpha)
|
||||
void CollimateDecay(G4DecayProducts* products);
|
||||
void CollimateDecayProduct(G4DynamicParticle* product);
|
||||
G4ThreeVector ChooseCollimationDirection() const;
|
||||
|
||||
G4double GetMeanFreePath(const G4Track& theTrack, G4double previousStepSize,
|
||||
G4ForceCondition* condition);
|
||||
|
||||
G4double GetMeanLifeTime(const G4Track& theTrack,
|
||||
G4ForceCondition* condition);
|
||||
|
||||
G4double ConvolveSourceTimeProfile(const G4double, const G4double);
|
||||
|
||||
G4double GetDecayTime();
|
||||
|
||||
G4int GetDecayTimeBin(const G4double aDecayTime);
|
||||
|
||||
//Add gamma,Xray,conversion,and auger electrons for bias mode
|
||||
void AddDeexcitationSpectrumForBiasMode(G4ParticleDefinition* apartDef,
|
||||
G4double weight,
|
||||
G4double currenTime,
|
||||
std::vector<double>& weights_v,
|
||||
std::vector<double>& times_v,
|
||||
std::vector<G4DynamicParticle*>& secondaries_v);
|
||||
|
||||
private:
|
||||
|
||||
void StreamInfo(std::ostream& os, const G4String& endline);
|
||||
|
||||
G4RadioactiveDecay(const G4RadioactiveDecay &right);
|
||||
G4RadioactiveDecay & operator=(const G4RadioactiveDecay &right);
|
||||
|
||||
G4RadioactiveDecaymessenger* theRadioactiveDecaymessenger;
|
||||
G4PhotonEvaporation* photonEvaporation;
|
||||
|
||||
G4NucleusLimits theNucleusLimits;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool AnalogueMC;
|
||||
G4bool BRBias;
|
||||
G4bool FBeta;
|
||||
G4int NSplit;
|
||||
|
||||
G4double halflifethreshold;
|
||||
G4bool applyICM;
|
||||
G4bool applyARM;
|
||||
|
||||
// Parameters for pre-collimated (biased) decay products
|
||||
G4ThreeVector forceDecayDirection;
|
||||
G4double forceDecayHalfAngle;
|
||||
static const G4ThreeVector origin; // (0,0,0) for convenience
|
||||
|
||||
G4int NSourceBin;
|
||||
G4double SBin[100];
|
||||
G4double SProfile[100];
|
||||
G4int NDecayBin;
|
||||
G4double DBin[100];
|
||||
G4double DProfile[100];
|
||||
|
||||
std::vector<G4String> ValidVolumes;
|
||||
bool isAllVolumesMode;
|
||||
|
||||
G4RadioactiveDecayRatesToDaughter ratesToDaughter;
|
||||
G4RadioactiveDecayRates theDecayRateVector;
|
||||
G4RadioactiveDecayChainsFromParent chainsFromParent;
|
||||
G4RadioactiveDecayParentChainTable theParentChainTable;
|
||||
|
||||
// for the radioactivity tables
|
||||
std::vector<G4RadioactivityTable*> theRadioactivityTables;
|
||||
G4int decayWindows[100];
|
||||
static const G4double levelTolerance;
|
||||
|
||||
// Radioactive decay database directory path
|
||||
G4String dirPath;
|
||||
|
||||
// User-defined radioactive decay data files
|
||||
std::map<G4int, G4String> theUserRadioactiveDataFiles;
|
||||
|
||||
//The last RadDecayMode
|
||||
G4RadioactiveDecayMode theRadDecayMode;
|
||||
|
||||
// Library of decay tables
|
||||
DecayTableMap* dkmap;
|
||||
#ifdef G4MULTITHREADED
|
||||
static DecayTableMap* master_dkmap;
|
||||
#endif
|
||||
|
||||
// Remainder of life time at rest
|
||||
G4double fRemainderLifeTime;
|
||||
G4int verboseLevel;
|
||||
|
||||
|
||||
// ParticleChange for decay process
|
||||
G4ParticleChangeForRadDecay fParticleChangeForRadDecay;
|
||||
|
||||
// inline implementations
|
||||
inline
|
||||
G4double AtRestGetPhysicalInteractionLength(const G4Track& track,
|
||||
G4ForceCondition* condition)
|
||||
{
|
||||
fRemainderLifeTime =
|
||||
G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(track, condition);
|
||||
return fRemainderLifeTime;
|
||||
}
|
||||
|
||||
inline
|
||||
G4VParticleChange* AtRestDoIt(const G4Track& theTrack,
|
||||
const G4Step& theStep)
|
||||
{return DecayIt(theTrack, theStep);}
|
||||
|
||||
inline
|
||||
G4VParticleChange* PostStepDoIt(const G4Track& theTrack,
|
||||
const G4Step& theStep)
|
||||
{return DecayIt(theTrack, theStep);}
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
public:
|
||||
static G4Mutex radioactiveDecayMutex;
|
||||
protected:
|
||||
G4int& NumberOfInstances();
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+10
-2
@@ -89,10 +89,10 @@ class G4RadioactiveDecayBase : public G4VRestDiscreteProcess
|
||||
G4DecayTable* GetDecayTable(const G4ParticleDefinition*);
|
||||
|
||||
// Select a logical volume in which RDM applies
|
||||
void SelectAVolume(const G4String aVolume);
|
||||
void SelectAVolume(const G4String& aVolume);
|
||||
|
||||
// Remove a logical volume from the RDM applied list
|
||||
void DeselectAVolume(const G4String aVolume);
|
||||
void DeselectAVolume(const G4String& aVolume);
|
||||
|
||||
// Select all logical volumes for the application of RDM
|
||||
void SelectAllVolumes();
|
||||
@@ -150,6 +150,12 @@ class G4RadioactiveDecayBase : public G4VRestDiscreteProcess
|
||||
SetDecayHalfAngle(halfAngle);
|
||||
}
|
||||
|
||||
// Ignore radioactive decays at rest of nuclides happening after this (very long) time threshold
|
||||
inline void SetThresholdForVeryLongDecayTime(const G4double inputThreshold) {
|
||||
fThresholdForVeryLongDecayTime = std::max( 0.0, inputThreshold );
|
||||
}
|
||||
inline G4double GetThresholdForVeryLongDecayTime() const {return fThresholdForVeryLongDecayTime;}
|
||||
|
||||
void BuildPhysicsTable(const G4ParticleDefinition &);
|
||||
|
||||
G4VParticleChange* DecayIt(const G4Track& theTrack,
|
||||
@@ -227,6 +233,8 @@ class G4RadioactiveDecayBase : public G4VRestDiscreteProcess
|
||||
G4double fRemainderLifeTime;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Ignore radioactive decays at rest of nuclides happening after this (very long) time threshold
|
||||
G4double fThresholdForVeryLongDecayTime;
|
||||
|
||||
// inline implementations
|
||||
inline
|
||||
|
||||
+14
-26
@@ -65,32 +65,20 @@ class G4RadioactiveDecayBaseMessenger: public G4UImessenger
|
||||
private:
|
||||
G4RadioactiveDecayBase* theRadioactiveDecayContainer;
|
||||
|
||||
G4UIdirectory* old_grdmDirectory; // To be removed in G4 11.0
|
||||
G4UIdirectory* rdmDirectory;
|
||||
G4UIcmdWithNucleusLimits* old_nucleuslimitsCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithNucleusLimits* nucleuslimitsCmd;
|
||||
G4UIcmdWithAnInteger* old_verboseCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithAnInteger* verboseCmd;
|
||||
G4UIcmdWithAString* old_avolumeCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithAString* avolumeCmd;
|
||||
G4UIcmdWithAString* old_deavolumeCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithAString* deavolumeCmd;
|
||||
G4UIcmdWithoutParameter* old_allvolumesCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithoutParameter* allvolumesCmd;
|
||||
G4UIcmdWithoutParameter* old_deallvolumesCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithoutParameter* deallvolumesCmd;
|
||||
G4UIcmdWithABool* old_icmCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithABool* icmCmd;
|
||||
G4UIcmdWithABool* old_armCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithABool* armCmd;
|
||||
G4UIcommand* old_userDecayDataCmd; // To be removed in G4 11.0
|
||||
G4UIcommand* userDecayDataCmd;
|
||||
G4UIcommand* old_userEvaporationDataCmd; // To be removed in G4 11.0
|
||||
G4UIcommand* userEvaporationDataCmd;
|
||||
G4UIcmdWith3Vector* old_colldirCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWith3Vector* colldirCmd;
|
||||
G4UIcmdWithADoubleAndUnit* old_collangleCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithADoubleAndUnit* collangleCmd;
|
||||
G4UIdirectory* rdmDirectory;
|
||||
G4UIcmdWithNucleusLimits* nucleuslimitsCmd;
|
||||
G4UIcmdWithAnInteger* verboseCmd;
|
||||
G4UIcmdWithAString* avolumeCmd;
|
||||
G4UIcmdWithAString* deavolumeCmd;
|
||||
G4UIcmdWithoutParameter* allvolumesCmd;
|
||||
G4UIcmdWithoutParameter* deallvolumesCmd;
|
||||
G4UIcmdWithABool* icmCmd;
|
||||
G4UIcmdWithABool* armCmd;
|
||||
G4UIcommand* userDecayDataCmd;
|
||||
G4UIcommand* userEvaporationDataCmd;
|
||||
G4UIcmdWith3Vector* colldirCmd;
|
||||
G4UIcmdWithADoubleAndUnit* collangleCmd;
|
||||
G4UIcmdWithADoubleAndUnit* thresholdForVeryLongDecayTimeCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
-141
@@ -1,141 +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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4RadioactiveDecaymessenger_h
|
||||
#define G4RadioactiveDecaymessenger_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: RadioactiveDecaymessenger.hh
|
||||
//
|
||||
// Version: 0.b.4
|
||||
// Date: 14/04/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
// 13 April 2000, F Lei, DERA UK
|
||||
// 0.b.4 release. No change to this file
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "G4UImessenger.hh"
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "G4UIcommand.hh"
|
||||
#include "G4UIcmdWith3VectorAndUnit.hh"
|
||||
#include "G4UIcmdWith3Vector.hh"
|
||||
#include "G4UIcmdWithABool.hh"
|
||||
#include "G4UIcmdWithAnInteger.hh"
|
||||
#include "G4UIcmdWithADoubleAndUnit.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
#include "G4UIcmdWithoutParameter.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4RadioactiveDecay.hh"
|
||||
#include "G4UIcmdWithNucleusLimits.hh"
|
||||
|
||||
class G4RadioactiveDecay;
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4RadioactiveDecaymessenger: public G4UImessenger
|
||||
{
|
||||
// class description
|
||||
// The G4RadioactiveDecaymessenger is instantiated by the G4RadioactiveDecay
|
||||
// process and introduces into the UI menu commands to control the running
|
||||
// of G4RadioactiveDecay
|
||||
|
||||
public: //with description
|
||||
G4RadioactiveDecaymessenger (G4RadioactiveDecay*
|
||||
theRadioactiveDecayContainer);
|
||||
// Constructor introduces commands into the UI menu to control
|
||||
// G4RadioactiveDecay. theRadioactiveDecayContainer1 is used to identify
|
||||
// to this class (when instatiated) the associated G4RadioactiveDecay
|
||||
// process whose parameters are going to be changed as a result
|
||||
// of the UI commands.
|
||||
~G4RadioactiveDecaymessenger ();
|
||||
// Destructor deletes G4UIdirectory and G4UIcommand objects.
|
||||
//
|
||||
void SetNewValue (G4UIcommand *command, G4String newValues);
|
||||
// Identifies the command which has been invoked by the user, extracts the
|
||||
// parameters associated with that command (held in newValues, and uses
|
||||
// these values with the appropriate member function of G4RadioactiveDecay.
|
||||
//
|
||||
private:
|
||||
G4RadioactiveDecay *theRadioactiveDecayContainer;
|
||||
|
||||
G4UIdirectory *old_grdmDirectory; // To be removed in G4 11.0
|
||||
G4UIdirectory *rdmDirectory;
|
||||
G4UIcmdWithNucleusLimits *old_nucleuslimitsCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithNucleusLimits *nucleuslimitsCmd;
|
||||
G4UIcmdWithAString *old_sourcetimeprofileCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithAString *sourcetimeprofileCmd;
|
||||
G4UIcmdWithAString *old_decaybiasprofileCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithAString *decaybiasprofileCmd;
|
||||
G4UIcmdWithABool *old_analoguemcCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithABool *analoguemcCmd;
|
||||
G4UIcmdWithABool *old_fbetaCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithABool *fbetaCmd;
|
||||
G4UIcmdWithABool *old_brbiasCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithABool *brbiasCmd;
|
||||
G4UIcmdWithAnInteger *old_splitnucleiCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithAnInteger *splitnucleiCmd;
|
||||
G4UIcmdWithAnInteger *old_verboseCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithAnInteger *verboseCmd;
|
||||
G4UIcmdWithAString *old_avolumeCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithAString *avolumeCmd;
|
||||
G4UIcmdWithAString *old_deavolumeCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithAString *deavolumeCmd;
|
||||
G4UIcmdWithoutParameter *old_allvolumesCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithoutParameter *allvolumesCmd;
|
||||
G4UIcmdWithoutParameter *old_deallvolumesCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithoutParameter *deallvolumesCmd;
|
||||
G4UIcmdWithABool *old_icmCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithABool *icmCmd;
|
||||
G4UIcmdWithABool *old_armCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithABool *armCmd;
|
||||
G4UIcmdWithADoubleAndUnit *old_hlthCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithADoubleAndUnit *hlthCmd;
|
||||
G4UIcommand *old_userDecayDataCmd; // To be removed in G4 11.0
|
||||
G4UIcommand *userDecayDataCmd;
|
||||
G4UIcommand *old_userEvaporationDataCmd; // To be removed in G4 11.0
|
||||
G4UIcommand *userEvaporationDataCmd;
|
||||
G4UIcmdWith3Vector *old_colldirCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWith3Vector *colldirCmd;
|
||||
G4UIcmdWithADoubleAndUnit *old_collangleCmd; // To be removed in G4 11.0
|
||||
G4UIcmdWithADoubleAndUnit *collangleCmd;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,109 +1,78 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# sources.cmake
|
||||
# Module : G4hadronic_radioactivedecay
|
||||
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_radioactivedecay
|
||||
#
|
||||
# Sources description for a library.
|
||||
# Lists the sources and headers of the code explicitly.
|
||||
# Lists include paths needed.
|
||||
# Lists the internal granular and global dependencies of the library.
|
||||
# Source specific properties should be added at the end.
|
||||
#
|
||||
# Generated on : 24/9/2010
|
||||
#
|
||||
# $Id: sources.cmake 106689 2017-10-19 16:20:21Z dwright $
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
# - G4hadronic_radioactivedecay module build definition
|
||||
|
||||
#
|
||||
# Define the Geant4 Module.
|
||||
#
|
||||
GEANT4_DEFINE_MODULE(NAME G4hadronic_radioactivedecay
|
||||
HEADERS
|
||||
G4AlphaDecay.hh
|
||||
G4BatemanParameters.hh
|
||||
G4BetaDecayCorrections.hh
|
||||
G4BetaDecayType.hh
|
||||
G4BetaMinusDecay.hh
|
||||
G4BetaPlusDecay.hh
|
||||
G4ECDecay.hh
|
||||
G4ITDecay.hh
|
||||
G4SFDecay.hh
|
||||
G4NeutronDecay.hh
|
||||
G4NuclearDecay.hh
|
||||
G4NucleusLimits.hh
|
||||
G4ProtonDecay.hh
|
||||
G4RadioactiveDecay.hh
|
||||
G4RadioactiveDecayBase.hh
|
||||
G4RadioactiveDecayBaseMessenger.hh
|
||||
G4Radioactivation.hh
|
||||
G4RadioactivationMessenger.hh
|
||||
G4RadioactiveDecayMode.hh
|
||||
G4RadioactiveDecayRatesToDaughter.hh
|
||||
G4RadioactiveDecayChainsFromParent.hh
|
||||
G4RadioactiveDecaymessenger.hh
|
||||
G4RadioactivityTable.hh
|
||||
G4TritonDecay.hh
|
||||
G4UIcmdWithNucleusLimits.hh
|
||||
G4UserLimitsForRD.hh
|
||||
SOURCES
|
||||
G4AlphaDecay.cc
|
||||
G4BatemanParameters.cc
|
||||
G4BetaDecayCorrections.cc
|
||||
G4BetaDecayType.cc
|
||||
G4BetaMinusDecay.cc
|
||||
G4BetaPlusDecay.cc
|
||||
G4ECDecay.cc
|
||||
G4ITDecay.cc
|
||||
G4SFDecay.cc
|
||||
G4NeutronDecay.cc
|
||||
G4NuclearDecay.cc
|
||||
G4NucleusLimits.cc
|
||||
G4ProtonDecay.cc
|
||||
G4RadioactiveDecay.cc
|
||||
G4RadioactiveDecayBase.cc
|
||||
G4RadioactiveDecayBaseMessenger.cc
|
||||
G4Radioactivation.cc
|
||||
G4RadioactivationMessenger.cc
|
||||
G4RadioactiveDecayMode.cc
|
||||
G4RadioactiveDecayRatesToDaughter.cc
|
||||
G4RadioactiveDecayChainsFromParent.cc
|
||||
G4RadioactiveDecaymessenger.cc
|
||||
G4RadioactivityTable.cc
|
||||
G4TritonDecay.cc
|
||||
G4UIcmdWithNucleusLimits.cc
|
||||
GRANULAR_DEPENDENCIES
|
||||
G4baryons
|
||||
G4bosons
|
||||
G4emutils
|
||||
G4geometrymng
|
||||
G4globman
|
||||
G4had_mod_util
|
||||
G4hadronic_deex_management
|
||||
G4hadronic_deex_photon_evaporation
|
||||
G4hadronic_deex_util
|
||||
G4had_fission
|
||||
G4hadronic_mgt
|
||||
G4hadronic_proc
|
||||
G4hadronic_util
|
||||
G4hadronic_xsect
|
||||
G4intercoms
|
||||
G4ions
|
||||
G4leptons
|
||||
G4materials
|
||||
G4mesons
|
||||
G4partman
|
||||
G4procman
|
||||
G4track
|
||||
G4volumes
|
||||
GLOBAL_DEPENDENCIES
|
||||
G4geometry
|
||||
G4global
|
||||
G4intercoms
|
||||
G4materials
|
||||
G4particles
|
||||
G4track
|
||||
LINK_LIBRARIES
|
||||
)
|
||||
geant4_add_module(G4hadronic_radioactivedecay
|
||||
PUBLIC_HEADERS
|
||||
G4AlphaDecay.hh
|
||||
G4BatemanParameters.hh
|
||||
G4BetaDecayCorrections.hh
|
||||
G4BetaDecayType.hh
|
||||
G4BetaMinusDecay.hh
|
||||
G4BetaPlusDecay.hh
|
||||
G4ECDecay.hh
|
||||
G4ITDecay.hh
|
||||
G4SFDecay.hh
|
||||
G4NeutronDecay.hh
|
||||
G4NuclearDecay.hh
|
||||
G4NucleusLimits.hh
|
||||
G4ProtonDecay.hh
|
||||
G4RadioactiveDecayBase.hh
|
||||
G4RadioactiveDecayBaseMessenger.hh
|
||||
G4Radioactivation.hh
|
||||
G4RadioactivationMessenger.hh
|
||||
G4RadioactiveDecayMode.hh
|
||||
G4RadioactiveDecayRatesToDaughter.hh
|
||||
G4RadioactiveDecayChainsFromParent.hh
|
||||
G4RadioactivityTable.hh
|
||||
G4TritonDecay.hh
|
||||
G4UIcmdWithNucleusLimits.hh
|
||||
G4UserLimitsForRD.hh
|
||||
SOURCES
|
||||
G4AlphaDecay.cc
|
||||
G4BatemanParameters.cc
|
||||
G4BetaDecayCorrections.cc
|
||||
G4BetaDecayType.cc
|
||||
G4BetaMinusDecay.cc
|
||||
G4BetaPlusDecay.cc
|
||||
G4ECDecay.cc
|
||||
G4ITDecay.cc
|
||||
G4SFDecay.cc
|
||||
G4NeutronDecay.cc
|
||||
G4NuclearDecay.cc
|
||||
G4NucleusLimits.cc
|
||||
G4ProtonDecay.cc
|
||||
G4RadioactiveDecayBase.cc
|
||||
G4RadioactiveDecayBaseMessenger.cc
|
||||
G4Radioactivation.cc
|
||||
G4RadioactivationMessenger.cc
|
||||
G4RadioactiveDecayMode.cc
|
||||
G4RadioactiveDecayRatesToDaughter.cc
|
||||
G4RadioactiveDecayChainsFromParent.cc
|
||||
G4RadioactivityTable.cc
|
||||
G4TritonDecay.cc
|
||||
G4UIcmdWithNucleusLimits.cc)
|
||||
|
||||
# List any source specific properties here
|
||||
geant4_module_link_libraries(G4hadronic_radioactivedecay
|
||||
PUBLIC
|
||||
G4globman
|
||||
G4hadronic_util
|
||||
G4heprandom
|
||||
G4intercoms
|
||||
G4partman
|
||||
G4procman
|
||||
G4track
|
||||
PRIVATE
|
||||
G4baryons
|
||||
G4bosons
|
||||
G4emlowenergy
|
||||
G4emutils
|
||||
G4geometrymng
|
||||
G4had_fission
|
||||
G4hadronic_deex_management
|
||||
G4hadronic_deex_photon_evaporation
|
||||
G4hadronic_mgt
|
||||
G4hadronic_util
|
||||
G4hepgeometry
|
||||
G4ions
|
||||
G4leptons
|
||||
G4materials)
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
#include "G4DynamicParticle.hh"
|
||||
#include "G4DecayProducts.hh"
|
||||
#include "G4PhotonEvaporation.hh"
|
||||
#include "G4RadioactiveDecay.hh"
|
||||
#include "G4VAtomDeexcitation.hh"
|
||||
#include "G4AtomicShells.hh"
|
||||
#include "G4Electron.hh"
|
||||
|
||||
@@ -42,52 +42,28 @@
|
||||
G4RadioactivationMessenger::G4RadioactivationMessenger(G4Radioactivation* theRadioactivationContainer1)
|
||||
:theRadioactivationContainer(theRadioactivationContainer1)
|
||||
{
|
||||
old_grdmDirectory = new G4UIdirectory("/grdm/"); // To be removed in G4 11.0
|
||||
old_grdmDirectory->SetGuidance("Controls the biased version of radioactive decay");
|
||||
|
||||
rdmDirectory = new G4UIdirectory("/process/had/rdm/");
|
||||
rdmDirectory->SetGuidance("Controls the biased version of radioactive decay");
|
||||
|
||||
// Command to turn on/off variance reduction options
|
||||
old_analoguemcCmd = new G4UIcmdWithABool("/grdm/analogueMC",this); // To be removed in G4 11.0
|
||||
old_analoguemcCmd->SetGuidance("false: variance reduction method; true: analogue method");
|
||||
old_analoguemcCmd->SetParameterName("OldAnalogueMC",true);
|
||||
old_analoguemcCmd->SetDefaultValue(true);
|
||||
|
||||
analoguemcCmd = new G4UIcmdWithABool("/process/had/rdm/analogueMC",this);
|
||||
analoguemcCmd->SetGuidance("false: variance reduction method; true: analogue method");
|
||||
analoguemcCmd->SetParameterName("AnalogueMC",true);
|
||||
analoguemcCmd->SetDefaultValue(true);
|
||||
|
||||
// Command to use branching ratio biasing or not
|
||||
old_brbiasCmd = new G4UIcmdWithABool("/grdm/BRbias",this); // To be removed in G4 11.0
|
||||
old_brbiasCmd->SetGuidance("false: no biasing; true: all branches are treated as equal");
|
||||
old_brbiasCmd->SetParameterName("OldBRBias",true);
|
||||
old_brbiasCmd->SetDefaultValue(true);
|
||||
|
||||
brbiasCmd = new G4UIcmdWithABool("/process/had/rdm/BRbias",this);
|
||||
brbiasCmd->SetGuidance("false: no biasing; true: all branches are treated as equal");
|
||||
brbiasCmd->SetParameterName("BRBias",true);
|
||||
brbiasCmd->SetDefaultValue(true);
|
||||
|
||||
// Command to set the half-life thresold for isomer production
|
||||
old_hlthCmd = new G4UIcmdWithADoubleAndUnit("/grdm/hlThreshold",this); // To be removed in G4 11.0
|
||||
old_hlthCmd->SetGuidance("Set the h-l threshold for isomer production");
|
||||
old_hlthCmd->SetParameterName("OldhlThreshold",false);
|
||||
old_hlthCmd->SetUnitCategory("Time");
|
||||
|
||||
hlthCmd = new G4UIcmdWithADoubleAndUnit("/process/had/rdm/hlThreshold",this);
|
||||
hlthCmd->SetGuidance("Set the h-l threshold for isomer production");
|
||||
hlthCmd->SetParameterName("hlThreshold",false);
|
||||
hlthCmd->SetUnitCategory("Time");
|
||||
|
||||
// Command to define the incident particle source time profile
|
||||
old_sourcetimeprofileCmd = new G4UIcmdWithAString("/grdm/sourceTimeProfile",this); // To be removed in G4 11.0
|
||||
old_sourcetimeprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the source particle time profile");
|
||||
old_sourcetimeprofileCmd->SetParameterName("OldSTimeProfile",true);
|
||||
old_sourcetimeprofileCmd->SetDefaultValue("source.data");
|
||||
|
||||
sourcetimeprofileCmd = new G4UIcmdWithAString("/process/had/rdm/sourceTimeProfile",this);
|
||||
sourcetimeprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the source particle time profile");
|
||||
@@ -95,12 +71,6 @@ G4RadioactivationMessenger::G4RadioactivationMessenger(G4Radioactivation* theRad
|
||||
sourcetimeprofileCmd->SetDefaultValue("source.data");
|
||||
|
||||
// Command to define the incident particle source time profile
|
||||
old_decaybiasprofileCmd = new G4UIcmdWithAString("/grdm/decayBiasProfile",this); // To be removed in G4 11.0
|
||||
old_decaybiasprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the decay bias time profile");
|
||||
old_decaybiasprofileCmd->SetParameterName("OldDBiasProfile",true);
|
||||
old_decaybiasprofileCmd->SetDefaultValue("bias.data");
|
||||
|
||||
decaybiasprofileCmd = new G4UIcmdWithAString("/process/had/rdm/decayBiasProfile",this);
|
||||
decaybiasprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the decay bias time profile");
|
||||
@@ -108,12 +78,6 @@ G4RadioactivationMessenger::G4RadioactivationMessenger(G4Radioactivation* theRad
|
||||
decaybiasprofileCmd->SetDefaultValue("bias.data");
|
||||
|
||||
// Command to set nuclei splitting parameter
|
||||
old_splitnucleiCmd = new G4UIcmdWithAnInteger("/grdm/splitNuclei",this); // To be removed in G4 11.0
|
||||
old_splitnucleiCmd->SetGuidance("Set number of splitting for the isotopes.");
|
||||
old_splitnucleiCmd->SetParameterName("OldNSplit",true);
|
||||
old_splitnucleiCmd->SetDefaultValue(1);
|
||||
old_splitnucleiCmd->SetRange("OldNSplit>=1");
|
||||
|
||||
splitnucleiCmd = new G4UIcmdWithAnInteger("/process/had/rdm/splitNuclei",this);
|
||||
splitnucleiCmd->SetGuidance("Set number of splitting for the isotopes.");
|
||||
splitnucleiCmd->SetParameterName("NSplit",true);
|
||||
@@ -124,65 +88,18 @@ G4RadioactivationMessenger::G4RadioactivationMessenger(G4Radioactivation* theRad
|
||||
|
||||
G4RadioactivationMessenger::~G4RadioactivationMessenger()
|
||||
{
|
||||
delete old_grdmDirectory; // To be removed in G4 11.0
|
||||
delete rdmDirectory;
|
||||
delete old_analoguemcCmd; // To be removed in G4 11.0
|
||||
delete analoguemcCmd;
|
||||
delete old_sourcetimeprofileCmd; // To be removed in G4 11.0
|
||||
delete sourcetimeprofileCmd;
|
||||
delete old_decaybiasprofileCmd; // To be removed in G4 11.0
|
||||
delete decaybiasprofileCmd;
|
||||
delete old_brbiasCmd; // To be removed in G4 11.0
|
||||
delete brbiasCmd;
|
||||
delete old_splitnucleiCmd; // To be removed in G4 11.0
|
||||
delete splitnucleiCmd;
|
||||
delete old_hlthCmd; // To be removed in G4 11.0
|
||||
delete hlthCmd;
|
||||
}
|
||||
|
||||
|
||||
void G4RadioactivationMessenger::SetNewValue(G4UIcommand* command, G4String newValues)
|
||||
{
|
||||
// Old commands to be removed in G4 11.0
|
||||
if ( command == old_analoguemcCmd ) { theRadioactivationContainer->
|
||||
SetAnalogueMonteCarlo( old_analoguemcCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/analogueMC in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactivationMessenger", "HAD_RDM_871", JustWarning, ed );
|
||||
} else if ( command == old_brbiasCmd ) { theRadioactivationContainer->
|
||||
SetBRBias( old_brbiasCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/BRbias in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactivationMessenger", "HAD_RDM_872", JustWarning, ed );
|
||||
} else if ( command == old_sourcetimeprofileCmd ) { theRadioactivationContainer->
|
||||
SetSourceTimeProfile( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/sourceTimeProfile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactivationMessenger", "HAD_RDM_873", JustWarning, ed );
|
||||
} else if ( command == old_decaybiasprofileCmd ) { theRadioactivationContainer->
|
||||
SetDecayBias( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/decayBiasProfile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactivationMessenger", "HAD_RDM_874", JustWarning, ed );
|
||||
} else if ( command == old_splitnucleiCmd ) { theRadioactivationContainer->
|
||||
SetSplitNuclei( old_splitnucleiCmd->GetNewIntValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/splitNuclei in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactivationMessenger", "HAD_RDM_875", JustWarning, ed );
|
||||
} else if ( command == old_hlthCmd ) { theRadioactivationContainer->
|
||||
SetHLThreshold( old_hlthCmd->GetNewDoubleValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/hlThreshold in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactivationMessenger", "HAD_RDM_876", JustWarning, ed );
|
||||
}
|
||||
|
||||
// New commands
|
||||
if ( command == analoguemcCmd ) { theRadioactivationContainer->
|
||||
SetAnalogueMonteCarlo( analoguemcCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == brbiasCmd ) { theRadioactivationContainer->
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -109,7 +109,8 @@ G4int& G4RadioactiveDecayBase::NumberOfInstances()
|
||||
G4RadioactiveDecayBase::G4RadioactiveDecayBase(const G4String& processName)
|
||||
: G4VRestDiscreteProcess(processName, fDecay), isInitialised(false),
|
||||
forceDecayDirection(0.,0.,0.), forceDecayHalfAngle(0.*deg), dirPath(""),
|
||||
verboseLevel(1)
|
||||
verboseLevel(1),
|
||||
fThresholdForVeryLongDecayTime( 1.0e+27*CLHEP::nanosecond ) // Longer than twice Universe's age
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if (GetVerboseLevel() > 1) {
|
||||
@@ -240,77 +241,78 @@ G4DecayTable* G4RadioactiveDecayBase::GetDecayTable(const G4ParticleDefinition*
|
||||
}
|
||||
|
||||
|
||||
void G4RadioactiveDecayBase::SelectAVolume(const G4String aVolume)
|
||||
void G4RadioactiveDecayBase::SelectAVolume(const G4String& aVolume)
|
||||
{
|
||||
G4LogicalVolumeStore* theLogicalVolumes;
|
||||
G4LogicalVolume* volume;
|
||||
theLogicalVolumes = G4LogicalVolumeStore::GetInstance();
|
||||
for (size_t i = 0; i < theLogicalVolumes->size(); i++) {
|
||||
volume = (*theLogicalVolumes)[i];
|
||||
if (volume->GetName() == aVolume) {
|
||||
ValidVolumes.push_back(aVolume);
|
||||
std::sort(ValidVolumes.begin(), ValidVolumes.end());
|
||||
// sort need for performing binary_search
|
||||
G4LogicalVolumeStore* theLogicalVolumes = G4LogicalVolumeStore::GetInstance();
|
||||
G4LogicalVolume* volume = nullptr;
|
||||
volume = theLogicalVolumes->GetVolume(aVolume);
|
||||
if (volume != nullptr)
|
||||
{
|
||||
ValidVolumes.push_back(aVolume);
|
||||
std::sort(ValidVolumes.begin(), ValidVolumes.end());
|
||||
// sort need for performing binary_search
|
||||
|
||||
if (GetVerboseLevel() > 0)
|
||||
G4cout << " Radioactive decay applied to " << aVolume << G4endl;
|
||||
|
||||
} else if (i == theLogicalVolumes->size() ) {
|
||||
G4ExceptionDescription ed;
|
||||
ed << aVolume << " is not a valid logical volume name. Decay not activated for it."
|
||||
<< G4endl;
|
||||
G4Exception("G4RadioactiveDecayBase::SelectAVolume()", "HAD_RDM_300",
|
||||
JustWarning, ed);
|
||||
}
|
||||
if (GetVerboseLevel() > 0)
|
||||
G4cout << " Radioactive decay applied to " << aVolume << G4endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
G4ExceptionDescription ed;
|
||||
ed << aVolume << " is not a valid logical volume name."
|
||||
<< " Decay not activated for it."
|
||||
<< G4endl;
|
||||
G4Exception("G4RadioactiveDecayBase::SelectAVolume()", "HAD_RDM_300",
|
||||
JustWarning, ed);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void G4RadioactiveDecayBase::DeselectAVolume(const G4String aVolume)
|
||||
void G4RadioactiveDecayBase::DeselectAVolume(const G4String& aVolume)
|
||||
{
|
||||
G4LogicalVolumeStore* theLogicalVolumes;
|
||||
G4LogicalVolume* volume;
|
||||
theLogicalVolumes = G4LogicalVolumeStore::GetInstance();
|
||||
for (size_t i = 0; i < theLogicalVolumes->size(); i++) {
|
||||
volume = (*theLogicalVolumes)[i];
|
||||
if (volume->GetName() == aVolume) {
|
||||
std::vector<G4String>::iterator location;
|
||||
location = std::find(ValidVolumes.begin(),ValidVolumes.end(),aVolume);
|
||||
if (location != ValidVolumes.end() ) {
|
||||
ValidVolumes.erase(location);
|
||||
std::sort(ValidVolumes.begin(), ValidVolumes.end());
|
||||
isAllVolumesMode = false;
|
||||
if (GetVerboseLevel() > 0)
|
||||
G4cout << " G4RadioactiveDecay::DeselectAVolume: " << aVolume
|
||||
<< " is removed from list " << G4endl;
|
||||
} else {
|
||||
G4ExceptionDescription ed;
|
||||
ed << aVolume << " is not in the list. No action taken." << G4endl;
|
||||
G4Exception("G4RadioactiveDecayBase::DeselectAVolume()", "HAD_RDM_300",
|
||||
JustWarning, ed);
|
||||
}
|
||||
} else if (i == theLogicalVolumes->size()) {
|
||||
G4LogicalVolumeStore* theLogicalVolumes = G4LogicalVolumeStore::GetInstance();
|
||||
G4LogicalVolume* volume = nullptr;
|
||||
volume = theLogicalVolumes->GetVolume(aVolume);
|
||||
if (volume != nullptr)
|
||||
{
|
||||
auto location= std::find(ValidVolumes.cbegin(),ValidVolumes.cend(),aVolume);
|
||||
if (location != ValidVolumes.cend() )
|
||||
{
|
||||
ValidVolumes.erase(location);
|
||||
std::sort(ValidVolumes.begin(), ValidVolumes.end());
|
||||
isAllVolumesMode = false;
|
||||
if (GetVerboseLevel() > 0)
|
||||
G4cout << " G4RadioactiveDecay::DeselectAVolume: " << aVolume
|
||||
<< " is removed from list " << G4endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
G4ExceptionDescription ed;
|
||||
ed << aVolume << " is not a valid logical volume name. No action taken."
|
||||
<< G4endl;
|
||||
ed << aVolume << " is not in the list. No action taken." << G4endl;
|
||||
G4Exception("G4RadioactiveDecayBase::DeselectAVolume()", "HAD_RDM_300",
|
||||
JustWarning, ed);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
G4ExceptionDescription ed;
|
||||
ed << aVolume << " is not a valid logical volume name. No action taken."
|
||||
<< G4endl;
|
||||
G4Exception("G4RadioactiveDecayBase::DeselectAVolume()", "HAD_RDM_300",
|
||||
JustWarning, ed);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void G4RadioactiveDecayBase::SelectAllVolumes()
|
||||
{
|
||||
G4LogicalVolumeStore* theLogicalVolumes;
|
||||
G4LogicalVolume* volume;
|
||||
theLogicalVolumes = G4LogicalVolumeStore::GetInstance();
|
||||
G4LogicalVolumeStore* theLogicalVolumes = G4LogicalVolumeStore::GetInstance();
|
||||
G4LogicalVolume* volume = nullptr;
|
||||
ValidVolumes.clear();
|
||||
#ifdef G4VERBOSE
|
||||
if (GetVerboseLevel()>1)
|
||||
G4cout << " RDM Applies to all Volumes" << G4endl;
|
||||
#endif
|
||||
for (size_t i = 0; i < theLogicalVolumes->size(); i++){
|
||||
for (std::size_t i = 0; i < theLogicalVolumes->size(); ++i){
|
||||
volume = (*theLogicalVolumes)[i];
|
||||
ValidVolumes.push_back(volume->GetName());
|
||||
#ifdef G4VERBOSE
|
||||
@@ -494,6 +496,8 @@ G4RadioactiveDecayBase::StreamInfo(std::ostream& os, const G4String& endline)
|
||||
<< emparam->DeexcitationIgnoreCut() << endline;
|
||||
os << "Use Bearden atomic level energies "
|
||||
<< emparam->BeardenFluoDir() << endline;
|
||||
os << "Threshold for very long decay time at rest "
|
||||
<< fThresholdForVeryLongDecayTime/CLHEP::ns << " ns" << endline;
|
||||
os << "======================================================================"
|
||||
<< G4endl;
|
||||
os.precision(prec);
|
||||
@@ -1129,6 +1133,24 @@ void G4RadioactiveDecayBase::DecayAnalog(const G4Track& theTrack)
|
||||
finalGlobalTime += temptime;
|
||||
finalLocalTime += temptime;
|
||||
energyDeposit += theParticle->GetKineticEnergy();
|
||||
|
||||
// Kill the parent particle, and ignore its decay, if it decays later than the
|
||||
// threshold fThresholdForVeryLongDecayTime (whose default value corresponds
|
||||
// to more than twice the age of the universe).
|
||||
// This kind of cut has been introduced (in April 2021) in order to avoid to
|
||||
// account energy depositions happening after many billions of years in
|
||||
// ordinary materials used in calorimetry, in particular Tungsten and Lead
|
||||
// (via their natural unstable, but very long lived, isotopes, such as
|
||||
// W183, W180 and Pb204).
|
||||
// Note that the cut is not on the average, mean lifetime, but on the actual
|
||||
// sampled global decay time.
|
||||
if ( finalGlobalTime > fThresholdForVeryLongDecayTime ) {
|
||||
fParticleChangeForRadDecay.SetNumberOfSecondaries(0);
|
||||
fParticleChangeForRadDecay.ProposeTrackStatus(fStopAndKill) ;
|
||||
fParticleChangeForRadDecay.ProposeLocalEnergyDeposit(0.0);
|
||||
ClearNumberOfInteractionLengthLeft();
|
||||
return;
|
||||
}
|
||||
}
|
||||
products->Boost(ParentEnergy, ParentDirection);
|
||||
|
||||
|
||||
+24
-193
@@ -45,65 +45,35 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
(G4RadioactiveDecayBase* theRadioactiveDecayContainer1)
|
||||
:theRadioactiveDecayContainer(theRadioactiveDecayContainer1)
|
||||
{
|
||||
// main directory for control of the RDM
|
||||
old_grdmDirectory = new G4UIdirectory("/grdm/"); // To be removed in G4 11.0
|
||||
old_grdmDirectory->SetGuidance("Controls for the Radioactive Decay Module.");
|
||||
|
||||
rdmDirectory = new G4UIdirectory("/process/had/rdm/");
|
||||
rdmDirectory->SetGuidance("Controls for the Radioactive Decay Module.");
|
||||
|
||||
// Command to define the limits on nucleus the RDM will treat.
|
||||
old_nucleuslimitsCmd = new G4UIcmdWithNucleusLimits("/grdm/nucleusLimits",this); // To be removed in G4 11.0
|
||||
old_nucleuslimitsCmd->SetGuidance("Set the atomic weight and number limits for the RDM.");
|
||||
old_nucleuslimitsCmd->SetParameterName("OldAMin","OldAMax","OldZMin","OldZMax",true);
|
||||
|
||||
nucleuslimitsCmd = new G4UIcmdWithNucleusLimits("/process/had/rdm/nucleusLimits",this);
|
||||
nucleuslimitsCmd->SetGuidance("Set the atomic weight and number limits for the RDM.");
|
||||
nucleuslimitsCmd->SetParameterName("AMin","AMax","ZMin","ZMax",true);
|
||||
|
||||
// Select a logical volume for RDM
|
||||
old_avolumeCmd = new G4UIcmdWithAString("/grdm/selectVolume",this); // To be removed in G4 11.0
|
||||
old_avolumeCmd->SetGuidance("Supply a logical volumes name to add it to the RDM apply list");
|
||||
old_avolumeCmd->SetParameterName("OldAVolume",false);
|
||||
|
||||
avolumeCmd = new G4UIcmdWithAString("/process/had/rdm/selectVolume",this);
|
||||
avolumeCmd->SetGuidance("Supply a logical volumes name to add it to the RDM apply list");
|
||||
avolumeCmd->SetParameterName("AVolume",false);
|
||||
|
||||
// De-select a logical volume for RDM
|
||||
old_deavolumeCmd = new G4UIcmdWithAString("/grdm/deselectVolume",this); // To be removed in G4 11.0
|
||||
old_deavolumeCmd->SetGuidance("Supply a logical volumes name to remove it from the RDM apply list");
|
||||
old_deavolumeCmd->SetParameterName("OldAVolume",false);
|
||||
|
||||
deavolumeCmd = new G4UIcmdWithAString("/process/had/rdm/deselectVolume",this);
|
||||
deavolumeCmd->SetGuidance("Supply a logical volumes name to remove it from the RDM apply list");
|
||||
deavolumeCmd->SetParameterName("AVolume",false);
|
||||
|
||||
// Select all logical volumes for RDM
|
||||
old_allvolumesCmd = new G4UIcmdWithoutParameter("/grdm/allVolumes",this); // To be removed in G4 11.0
|
||||
old_allvolumesCmd->SetGuidance(" apply RDM to all logical volumes. No parameter required.");
|
||||
// old_allvolumeCmd->SetParameterName("OldAddAVolume",true);
|
||||
|
||||
allvolumesCmd = new G4UIcmdWithoutParameter("/process/had/rdm/allVolumes",this);
|
||||
allvolumesCmd->SetGuidance(" apply RDM to all logical volumes. No parameter required.");
|
||||
// allvolumeCmd->SetParameterName("AddAVolume",true);
|
||||
|
||||
// De-select all logical volumes for RDM
|
||||
old_deallvolumesCmd = new G4UIcmdWithoutParameter("/grdm/noVolumes",this); // To be removed in G4 11.0
|
||||
old_deallvolumesCmd->SetGuidance(" RDM is not applied to any logical volumes");
|
||||
// old_deallvolumesCmd->SetParameterName("OldRemoveAVolume",true);
|
||||
|
||||
deallvolumesCmd = new G4UIcmdWithoutParameter("/process/had/rdm/noVolumes",this);
|
||||
deallvolumesCmd->SetGuidance(" RDM is not applied to any logical volumes");
|
||||
// deallvolumesCmd->SetParameterName("RemoveAVolume",true);
|
||||
|
||||
// Command to invoke internal conversion or not
|
||||
old_icmCmd = new G4UIcmdWithABool("/grdm/applyICM",this); // To be removed in G4 11.0
|
||||
old_icmCmd->SetGuidance("Command not active; kept for backward compatibility.");
|
||||
old_icmCmd->SetGuidance("Internal conversion is always turned on.");
|
||||
old_icmCmd->SetParameterName("OldApplyICM",true);
|
||||
old_icmCmd->SetDefaultValue(true);
|
||||
|
||||
icmCmd = new G4UIcmdWithABool("/process/had/rdm/applyICM",this);
|
||||
icmCmd->SetGuidance("Command not active; kept for backward compatibility.");
|
||||
icmCmd->SetGuidance("Internal conversion is always turned on.");
|
||||
@@ -111,12 +81,6 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
icmCmd->SetDefaultValue(true);
|
||||
|
||||
// Command to invoke atomic relaxation or not
|
||||
old_armCmd = new G4UIcmdWithABool("/grdm/applyARM",this); // To be removed in G4 11.0
|
||||
old_armCmd->SetGuidance("True: ARM is applied; false: no");
|
||||
old_armCmd->SetParameterName("OldApplyARM",true);
|
||||
old_armCmd->SetDefaultValue(true);
|
||||
//old_armCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
armCmd = new G4UIcmdWithABool("/process/had/rdm/applyARM",this);
|
||||
armCmd->SetGuidance("True: ARM is applied; false: no");
|
||||
armCmd->SetParameterName("ApplyARM",true);
|
||||
@@ -124,32 +88,17 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
//armCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
// Command to set the directional bias (collimation) vector
|
||||
old_colldirCmd = new G4UIcmdWith3Vector("/grdm/decayDirection",this); // To be removed in G4 11.0
|
||||
old_colldirCmd->SetGuidance("Supply the direction vector for decay products");
|
||||
old_colldirCmd->SetParameterName("OldX","OldY","OldZ",false);
|
||||
|
||||
colldirCmd = new G4UIcmdWith3Vector("/process/had/rdm/decayDirection",this);
|
||||
colldirCmd->SetGuidance("Supply the direction vector for decay products");
|
||||
colldirCmd->SetParameterName("X","Y","Z",false);
|
||||
|
||||
// Command to set the directional bias (collimation) half angle ("cone")
|
||||
old_collangleCmd = new G4UIcmdWithADoubleAndUnit("/grdm/decayHalfAngle",this); // To be removed in G4 11.0
|
||||
old_collangleCmd->SetGuidance("Supply maximum angle from direction vector for decay products");
|
||||
old_collangleCmd->SetParameterName("OldHalfAngle",false);
|
||||
old_collangleCmd->SetUnitCategory("Angle");
|
||||
|
||||
collangleCmd = new G4UIcmdWithADoubleAndUnit("/process/had/rdm/decayHalfAngle",this);
|
||||
collangleCmd->SetGuidance("Supply maximum angle from direction vector for decay products");
|
||||
collangleCmd->SetParameterName("HalfAngle",false);
|
||||
collangleCmd->SetUnitCategory("Angle");
|
||||
|
||||
// This command setup the verbose level of radioactive decay
|
||||
old_verboseCmd = new G4UIcmdWithAnInteger("/grdm/verbose",this); // To be removed in G4 11.0
|
||||
old_verboseCmd->SetGuidance("Set verbose level: 0, 1, 2 or 3");
|
||||
old_verboseCmd->SetParameterName("OldVerboseLevel",true);
|
||||
old_verboseCmd->SetDefaultValue(1);
|
||||
old_verboseCmd->SetRange("OldVerboseLevel>=0");
|
||||
|
||||
verboseCmd = new G4UIcmdWithAnInteger("/process/had/rdm/verbose",this);
|
||||
verboseCmd->SetGuidance("Set verbose level: 0, 1, 2 or 3");
|
||||
verboseCmd->SetParameterName("VerboseLevel",true);
|
||||
@@ -157,20 +106,6 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
verboseCmd->SetRange("VerboseLevel>=0");
|
||||
|
||||
// Use a user-defined decay datafile for a given isotope
|
||||
old_userDecayDataCmd = new G4UIcommand("/grdm/setRadioactiveDecayFile",this); // To be removed in G4 11.0
|
||||
old_userDecayDataCmd->SetGuidance("Supply user-defined radioactive decay data file");
|
||||
G4UIparameter* old_Z_para= new G4UIparameter("Z_isotope",'i',true);
|
||||
old_Z_para->SetParameterRange("Z_isotope > 0");
|
||||
old_Z_para->SetGuidance("Z: Charge number of isotope");
|
||||
G4UIparameter* old_A_para= new G4UIparameter("A_isotope",'i',true);
|
||||
old_A_para->SetParameterRange("A_isotope > 1");
|
||||
old_A_para->SetGuidance("A: mass number of isotope");
|
||||
G4UIparameter* old_FileName_para= new G4UIparameter("file_name",'s',true);
|
||||
old_FileName_para->SetGuidance("Name of the user data file");
|
||||
old_userDecayDataCmd->SetParameter(old_Z_para);
|
||||
old_userDecayDataCmd->SetParameter(old_A_para);
|
||||
old_userDecayDataCmd->SetParameter(old_FileName_para);
|
||||
|
||||
userDecayDataCmd = new G4UIcommand("/process/had/rdm/setRadioactiveDecayFile",this);
|
||||
userDecayDataCmd->SetGuidance("Supply user-defined radioactive decay data file");
|
||||
G4UIparameter* Z_para= new G4UIparameter("Z_isotope",'i',true);
|
||||
@@ -186,20 +121,6 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
userDecayDataCmd->SetParameter(FileName_para);
|
||||
|
||||
// Use a user-defined evaporation data file for a given isotope
|
||||
old_userEvaporationDataCmd = new G4UIcommand("/grdm/setPhotoEvaporationFile",this); // To be removed in G4 11.0
|
||||
old_userEvaporationDataCmd->SetGuidance("Supply user-defined photon evaporation data file");
|
||||
G4UIparameter* old_Zpara= new G4UIparameter("Z_isotope",'i',true);
|
||||
old_Zpara->SetParameterRange("Z_isotope > 0");
|
||||
old_Zpara->SetGuidance("Z: Charge number of isotope");
|
||||
G4UIparameter* old_Apara= new G4UIparameter("A_isotope",'i',true);
|
||||
old_Apara->SetParameterRange("A_isotope > 1");
|
||||
old_Apara->SetGuidance("A: mass number of isotope");
|
||||
G4UIparameter* old_FileNamepara= new G4UIparameter("file_name",'s',true);
|
||||
old_FileNamepara->SetGuidance("Name of the user data file");
|
||||
old_userEvaporationDataCmd->SetParameter(old_Zpara);
|
||||
old_userEvaporationDataCmd->SetParameter(old_Apara);
|
||||
old_userEvaporationDataCmd->SetParameter(old_FileNamepara);
|
||||
|
||||
userEvaporationDataCmd = new G4UIcommand("/process/had/rdm/setPhotoEvaporationFile",this);
|
||||
userEvaporationDataCmd->SetGuidance("Supply user-defined photon evaporation data file");
|
||||
G4UIparameter* Zpara= new G4UIparameter("Z_isotope",'i',true);
|
||||
@@ -213,130 +134,38 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
userEvaporationDataCmd->SetParameter(Zpara);
|
||||
userEvaporationDataCmd->SetParameter(Apara);
|
||||
userEvaporationDataCmd->SetParameter(FileNamepara);
|
||||
|
||||
// Command to set the threshold for very long decay time (i.e. radioactive
|
||||
// decays of nuclides at rest happening later than this threshold are ignored)
|
||||
thresholdForVeryLongDecayTimeCmd = new G4UIcmdWithADoubleAndUnit("/process/had/rdm/thresholdForVeryLongDecayTime",this);
|
||||
thresholdForVeryLongDecayTimeCmd->SetGuidance("Ignore decays at rest of nuclides happening after this time threshold");
|
||||
thresholdForVeryLongDecayTimeCmd->SetParameterName("ThresholdForVeryLongDecayTime",false);
|
||||
thresholdForVeryLongDecayTimeCmd->SetUnitCategory("Time");
|
||||
}
|
||||
|
||||
|
||||
G4RadioactiveDecayBaseMessenger::~G4RadioactiveDecayBaseMessenger ()
|
||||
{
|
||||
delete old_grdmDirectory; // To be removed in G4 11.0
|
||||
delete rdmDirectory;
|
||||
delete old_nucleuslimitsCmd; // To be removed in G4 11.0
|
||||
delete nucleuslimitsCmd;
|
||||
delete old_verboseCmd; // To be removed in G4 11.0
|
||||
delete verboseCmd;
|
||||
delete old_avolumeCmd; // To be removed in G4 11.0
|
||||
delete avolumeCmd;
|
||||
delete old_deavolumeCmd; // To be removed in G4 11.0
|
||||
delete deavolumeCmd;
|
||||
delete old_allvolumesCmd; // To be removed in G4 11.0
|
||||
delete allvolumesCmd;
|
||||
delete old_deallvolumesCmd; // To be removed in G4 11.0
|
||||
delete deallvolumesCmd;
|
||||
delete old_icmCmd; // To be removed in G4 11.0
|
||||
delete icmCmd;
|
||||
delete old_armCmd; // To be removed in G4 11.0
|
||||
delete armCmd;
|
||||
delete old_userDecayDataCmd; // To be removed in G4 11.0
|
||||
delete userDecayDataCmd; //<---
|
||||
delete old_userEvaporationDataCmd; // To be removed in G4 11.0
|
||||
delete userEvaporationDataCmd;
|
||||
delete old_colldirCmd; // To be removed in G4 11.0
|
||||
delete colldirCmd;
|
||||
delete old_collangleCmd; // To be removed in G4 11.0
|
||||
delete collangleCmd;
|
||||
delete rdmDirectory;
|
||||
delete nucleuslimitsCmd;
|
||||
delete verboseCmd;
|
||||
delete avolumeCmd;
|
||||
delete deavolumeCmd;
|
||||
delete allvolumesCmd;
|
||||
delete deallvolumesCmd;
|
||||
delete icmCmd;
|
||||
delete armCmd;
|
||||
delete userDecayDataCmd;
|
||||
delete userEvaporationDataCmd;
|
||||
delete colldirCmd;
|
||||
delete collangleCmd;
|
||||
delete thresholdForVeryLongDecayTimeCmd;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
G4RadioactiveDecayBaseMessenger::SetNewValue(G4UIcommand *command, G4String newValues)
|
||||
{
|
||||
// Old commands to be removed in G4 11.0
|
||||
if ( command == old_nucleuslimitsCmd ) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetNucleusLimits( old_nucleuslimitsCmd->GetNewNucleusLimitsValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/nucleusLimits in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_671", JustWarning, ed );
|
||||
} else if ( command == old_avolumeCmd ) {
|
||||
theRadioactiveDecayContainer->SelectAVolume( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/selectVolume in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_672", JustWarning, ed );
|
||||
} else if ( command == old_deavolumeCmd ) {
|
||||
theRadioactiveDecayContainer->DeselectAVolume( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/deselectVolume in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_673", JustWarning, ed );
|
||||
} else if ( command == old_allvolumesCmd ) {
|
||||
theRadioactiveDecayContainer->SelectAllVolumes();
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/allVolumes in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_674", JustWarning, ed );
|
||||
} else if ( command == old_deallvolumesCmd ) {
|
||||
theRadioactiveDecayContainer->DeselectAllVolumes();
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/noVolumes in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_675", JustWarning, ed );
|
||||
} else if ( command == old_verboseCmd ) {
|
||||
theRadioactiveDecayContainer->SetVerboseLevel( old_verboseCmd->GetNewIntValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/verbose in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_676", JustWarning, ed );
|
||||
} else if ( command == old_icmCmd ) {
|
||||
theRadioactiveDecayContainer->SetICM( old_icmCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/applyICM in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_677", JustWarning, ed );
|
||||
} else if ( command == old_armCmd ) {
|
||||
theRadioactiveDecayContainer->SetARM( old_armCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/applyARM in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_678", JustWarning, ed );
|
||||
} else if ( command == old_userDecayDataCmd ) {
|
||||
G4int Z,A;
|
||||
G4String file_name;
|
||||
const char* nv = (const char*)newValues;
|
||||
std::istringstream is(nv);
|
||||
is >> Z >> A >> file_name;
|
||||
theRadioactiveDecayContainer->AddUserDecayDataFile(Z,A,file_name);
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/setRadioactiveDecayFile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_679", JustWarning, ed );
|
||||
} else if ( command == old_userEvaporationDataCmd ) {
|
||||
G4int Z,A;
|
||||
G4String file_name;
|
||||
const char* nv = (const char*)newValues;
|
||||
std::istringstream is(nv);
|
||||
is >> Z >> A >> file_name;
|
||||
G4NuclearLevelData::GetInstance()->AddPrivateData(Z,A,file_name);
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/setPhotoEvaporationFile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_680", JustWarning, ed );
|
||||
} else if ( command == old_colldirCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayDirection( old_colldirCmd->GetNew3VectorValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/decayDirection in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_681", JustWarning, ed );
|
||||
} else if ( command == old_collangleCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayHalfAngle( old_collangleCmd->GetNewDoubleValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/decayHalfAngle in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_682", JustWarning, ed );
|
||||
}
|
||||
|
||||
// New commands
|
||||
if ( command == nucleuslimitsCmd ) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetNucleusLimits( nucleuslimitsCmd->GetNewNucleusLimitsValue( newValues ) );
|
||||
@@ -372,6 +201,8 @@ G4RadioactiveDecayBaseMessenger::SetNewValue(G4UIcommand *command, G4String newV
|
||||
theRadioactiveDecayContainer->SetDecayDirection( colldirCmd->GetNew3VectorValue( newValues ) );
|
||||
} else if ( command == collangleCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayHalfAngle( collangleCmd->GetNewDoubleValue( newValues ) );
|
||||
}
|
||||
} else if ( command == thresholdForVeryLongDecayTimeCmd ) {
|
||||
theRadioactiveDecayContainer->SetThresholdForVeryLongDecayTime( thresholdForVeryLongDecayTimeCmd->GetNewDoubleValue( newValues ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-525
@@ -1,525 +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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
|
||||
#include "G4RadioactiveDecaymessenger.hh"
|
||||
#include "G4NuclearLevelData.hh"
|
||||
#include <sstream>
|
||||
#include "G4HadronicException.hh"
|
||||
|
||||
|
||||
G4RadioactiveDecaymessenger::G4RadioactiveDecaymessenger
|
||||
(G4RadioactiveDecay* theRadioactiveDecayContainer1)
|
||||
:theRadioactiveDecayContainer(theRadioactiveDecayContainer1)
|
||||
{
|
||||
// main directory for control of the RDM
|
||||
old_grdmDirectory = new G4UIdirectory("/grdm/"); // To be removed in G4 11.0
|
||||
old_grdmDirectory->SetGuidance("Controls for the Radioactive Decay Module.");
|
||||
|
||||
rdmDirectory = new G4UIdirectory("/process/had/rdm/");
|
||||
rdmDirectory->SetGuidance("Controls for the Radioactive Decay Module.");
|
||||
|
||||
// Command to define the limits on nucleus the RDM will treat.
|
||||
old_nucleuslimitsCmd = new G4UIcmdWithNucleusLimits("/grdm/nucleusLimits",this); // To be removed in G4 11.0
|
||||
old_nucleuslimitsCmd->SetGuidance("Set the atomic weight and number limits for the RDM.");
|
||||
old_nucleuslimitsCmd->SetParameterName("OldAMin","OldAMax","OldZMin","OldZMax",true);
|
||||
|
||||
nucleuslimitsCmd = new G4UIcmdWithNucleusLimits("/process/had/rdm/nucleusLimits",this);
|
||||
nucleuslimitsCmd->SetGuidance("Set the atomic weight and number limits for the RDM.");
|
||||
nucleuslimitsCmd->SetParameterName("AMin","AMax","ZMin","ZMax",true);
|
||||
|
||||
// The next command contols whether the decay will be treated analoguely or
|
||||
// with variance reduction
|
||||
old_analoguemcCmd = new G4UIcmdWithABool("/grdm/analogueMC",this); // To be removed in G4 11.0
|
||||
old_analoguemcCmd->SetGuidance("false: variance reduction method; true: analogue method");
|
||||
old_analoguemcCmd->SetParameterName("OldAnalogueMC",true);
|
||||
old_analoguemcCmd->SetDefaultValue(true);
|
||||
|
||||
analoguemcCmd = new G4UIcmdWithABool("/process/had/rdm/analogueMC",this);
|
||||
analoguemcCmd->SetGuidance("false: variance reduction method; true: analogue method");
|
||||
analoguemcCmd->SetParameterName("AnalogueMC",true);
|
||||
analoguemcCmd->SetDefaultValue(true);
|
||||
|
||||
// The next command contols whether beta decay will be treated faithfully or in fast mode
|
||||
old_fbetaCmd = new G4UIcmdWithABool("/grdm/fBeta",this); // To be removed in G4 11.0
|
||||
old_fbetaCmd->SetGuidance("false: use 3-body decay, true: use histogram method");
|
||||
old_fbetaCmd->SetParameterName("OldFBeta",true);
|
||||
old_fbetaCmd->SetDefaultValue(false);
|
||||
|
||||
fbetaCmd = new G4UIcmdWithABool("/process/had/rdm/fBeta",this);
|
||||
fbetaCmd->SetGuidance("false: use 3-body decay, true: use histogram method");
|
||||
fbetaCmd->SetParameterName("FBeta",true);
|
||||
fbetaCmd->SetDefaultValue(false);
|
||||
|
||||
// Command to selete a logical volume for RDM.
|
||||
old_avolumeCmd = new G4UIcmdWithAString("/grdm/selectVolume",this); // To be removed in G4 11.0
|
||||
old_avolumeCmd->SetGuidance("Supply a logical volumes name to add it to the RDM apply list");
|
||||
old_avolumeCmd->SetParameterName("OldAVolume",false);
|
||||
|
||||
avolumeCmd = new G4UIcmdWithAString("/process/had/rdm/selectVolume",this);
|
||||
avolumeCmd->SetGuidance("Supply a logical volumes name to add it to the RDM apply list");
|
||||
avolumeCmd->SetParameterName("AVolume",false);
|
||||
|
||||
// Command to de-selete a logical volume for RDM.
|
||||
old_deavolumeCmd = new G4UIcmdWithAString("/grdm/deselectVolume",this); // To be removed in G4 11.0
|
||||
old_deavolumeCmd->SetGuidance("Supply a logical volumes name to remove it from the RDM apply list");
|
||||
old_deavolumeCmd->SetParameterName("OldAVolume",false);
|
||||
|
||||
deavolumeCmd = new G4UIcmdWithAString("/process/had/rdm/deselectVolume",this);
|
||||
deavolumeCmd->SetGuidance("Supply a logical volumes name to remove it from the RDM apply list");
|
||||
deavolumeCmd->SetParameterName("AVolume",false);
|
||||
|
||||
// Command to selete all logical volumes for RDM.
|
||||
old_allvolumesCmd = new G4UIcmdWithoutParameter("/grdm/allVolumes",this); // To be removed in G4 11.0
|
||||
old_allvolumesCmd->SetGuidance(" apply RDM to all logical volumes. No parameter required.");
|
||||
// old_allvolumeCmd->SetParameterName("OldAddAVolume",true);
|
||||
|
||||
allvolumesCmd = new G4UIcmdWithoutParameter("/process/had/rdm/allVolumes",this);
|
||||
allvolumesCmd->SetGuidance(" apply RDM to all logical volumes. No parameter required.");
|
||||
// allvolumeCmd->SetParameterName("AddAVolume",true);
|
||||
|
||||
// Command to de-selete a logical volume for RDM.
|
||||
old_deallvolumesCmd = new G4UIcmdWithoutParameter("/grdm/noVolumes",this); // To be removed in G4 11.0
|
||||
old_deallvolumesCmd->SetGuidance(" RDM is not applied to any logical volumes");
|
||||
// old_deallvolumesCmd->SetParameterName("OldRemoveAVolume",true);
|
||||
|
||||
deallvolumesCmd = new G4UIcmdWithoutParameter("/process/had/rdm/noVolumes",this);
|
||||
deallvolumesCmd->SetGuidance(" RDM is not applied to any logical volumes");
|
||||
// deallvolumesCmd->SetParameterName("RemoveAVolume",true);
|
||||
|
||||
// The next command contols whether the branching ratio biasing will be applied or not
|
||||
old_brbiasCmd = new G4UIcmdWithABool("/grdm/BRbias",this); // To be removed in G4 11.0
|
||||
old_brbiasCmd->SetGuidance("false: no biasing; true: all branches are treated as equal");
|
||||
old_brbiasCmd->SetParameterName("OldBRBias",true);
|
||||
old_brbiasCmd->SetDefaultValue(true);
|
||||
|
||||
brbiasCmd = new G4UIcmdWithABool("/process/had/rdm/BRbias",this);
|
||||
brbiasCmd->SetGuidance("false: no biasing; true: all branches are treated as equal");
|
||||
brbiasCmd->SetParameterName("BRBias",true);
|
||||
brbiasCmd->SetDefaultValue(true);
|
||||
|
||||
// Command controls whether ICM will be applied or not
|
||||
old_icmCmd = new G4UIcmdWithABool("/grdm/applyICM",this); // To be removed in G4 11.0
|
||||
old_icmCmd->SetGuidance("True: ICM is applied; false: no");
|
||||
old_icmCmd->SetParameterName("OldApplyICM",true);
|
||||
old_icmCmd->SetDefaultValue(true);
|
||||
|
||||
icmCmd = new G4UIcmdWithABool("/process/had/rdm/applyICM",this);
|
||||
icmCmd->SetGuidance("True: ICM is applied; false: no");
|
||||
icmCmd->SetParameterName("ApplyICM",true);
|
||||
icmCmd->SetDefaultValue(true);
|
||||
|
||||
// Command contols whether ARM will be applied or not
|
||||
old_armCmd = new G4UIcmdWithABool("/grdm/applyARM",this); // To be removed in G4 11.0
|
||||
old_armCmd->SetGuidance("True: ARM is applied; false: no");
|
||||
old_armCmd->SetParameterName("OldApplyARM",true);
|
||||
old_armCmd->SetDefaultValue(true);
|
||||
// old_armCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
armCmd = new G4UIcmdWithABool("/process/had/rdm/applyARM",this);
|
||||
armCmd->SetGuidance("True: ARM is applied; false: no");
|
||||
armCmd->SetParameterName("ApplyARM",true);
|
||||
armCmd->SetDefaultValue(true);
|
||||
// armCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
// Command to set the h-l thresold for isomer production
|
||||
old_hlthCmd = new G4UIcmdWithADoubleAndUnit("/grdm/hlThreshold",this); // To be removed in G4 11.0
|
||||
old_hlthCmd->SetGuidance("Set the h-l threshold for isomer production");
|
||||
old_hlthCmd->SetParameterName("OldHlThreshold",false);
|
||||
// old_hlthCmd->SetRange("OldHlThreshold>0.");
|
||||
old_hlthCmd->SetUnitCategory("Time");
|
||||
// old_hlthCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
hlthCmd = new G4UIcmdWithADoubleAndUnit("/process/had/rdm/hlThreshold",this);
|
||||
hlthCmd->SetGuidance("Set the h-l threshold for isomer production");
|
||||
hlthCmd->SetParameterName("HlThreshold",false);
|
||||
// hlthCmd->SetRange("HlThreshold>0.");
|
||||
hlthCmd->SetUnitCategory("Time");
|
||||
// hlthCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
// Command to define the incident particle source time profile.
|
||||
old_sourcetimeprofileCmd = new G4UIcmdWithAString("/grdm/sourceTimeProfile",this); // To be removed in G4 11.0
|
||||
old_sourcetimeprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the source particle time profile");
|
||||
old_sourcetimeprofileCmd->SetParameterName("OldSTimeProfile",true);
|
||||
old_sourcetimeprofileCmd->SetDefaultValue("source.data");
|
||||
|
||||
sourcetimeprofileCmd = new G4UIcmdWithAString("/process/had/rdm/sourceTimeProfile",this);
|
||||
sourcetimeprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the source particle time profile");
|
||||
sourcetimeprofileCmd->SetParameterName("STimeProfile",true);
|
||||
sourcetimeprofileCmd->SetDefaultValue("source.data");
|
||||
|
||||
// Command to define the incident particle source time profile.
|
||||
old_decaybiasprofileCmd = new G4UIcmdWithAString("/grdm/decayBiasProfile",this); // To be removed in G4 11.0
|
||||
old_decaybiasprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the decay bias time profile");
|
||||
old_decaybiasprofileCmd->SetParameterName("OldDBiasProfile",true);
|
||||
old_decaybiasprofileCmd->SetDefaultValue("bias.data");
|
||||
|
||||
decaybiasprofileCmd = new G4UIcmdWithAString("/process/had/rdm/decayBiasProfile",this);
|
||||
decaybiasprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the decay bias time profile");
|
||||
decaybiasprofileCmd->SetParameterName("DBiasProfile",true);
|
||||
decaybiasprofileCmd->SetDefaultValue("bias.data");
|
||||
|
||||
// Command to set the directional bias (collimation) vector
|
||||
old_colldirCmd = new G4UIcmdWith3Vector("/grdm/decayDirection",this); // To be removed in G4 11.0
|
||||
old_colldirCmd->SetGuidance("Supply the direction vector for decay products");
|
||||
old_colldirCmd->SetParameterName("OldX","OldY","OldZ",false);
|
||||
|
||||
colldirCmd = new G4UIcmdWith3Vector("/process/had/rdm/decayDirection",this);
|
||||
colldirCmd->SetGuidance("Supply the direction vector for decay products");
|
||||
colldirCmd->SetParameterName("X","Y","Z",false);
|
||||
|
||||
// Command to set the directional bias (collimation) half angle ("cone")
|
||||
old_collangleCmd = new G4UIcmdWithADoubleAndUnit("/grdm/decayHalfAngle",this); // To be removed in G4 11.0
|
||||
old_collangleCmd->SetGuidance("Supply maximum angle from direction vector for decay products");
|
||||
old_collangleCmd->SetParameterName("OldHalfAngle",false);
|
||||
old_collangleCmd->SetUnitCategory("Angle");
|
||||
|
||||
collangleCmd = new G4UIcmdWithADoubleAndUnit("/process/had/rdm/decayHalfAngle",this);
|
||||
collangleCmd->SetGuidance("Supply maximum angle from direction vector for decay products");
|
||||
collangleCmd->SetParameterName("HalfAngle",false);
|
||||
collangleCmd->SetUnitCategory("Angle");
|
||||
|
||||
// This command setup the nuclei spliting parameter
|
||||
old_splitnucleiCmd = new G4UIcmdWithAnInteger("/grdm/splitNuclei",this); // To be removed in G4 11.0
|
||||
old_splitnucleiCmd->SetGuidance("Set number of spliting for the isotopes.");
|
||||
old_splitnucleiCmd->SetParameterName("OldNSplit",true);
|
||||
old_splitnucleiCmd->SetDefaultValue(1);
|
||||
old_splitnucleiCmd->SetRange("OldNSplit>=1");
|
||||
|
||||
splitnucleiCmd = new G4UIcmdWithAnInteger("/process/had/rdm/splitNuclei",this);
|
||||
splitnucleiCmd->SetGuidance("Set number of spliting for the isotopes.");
|
||||
splitnucleiCmd->SetParameterName("NSplit",true);
|
||||
splitnucleiCmd->SetDefaultValue(1);
|
||||
splitnucleiCmd->SetRange("NSplit>=1");
|
||||
|
||||
// This command setup the verbose level of radioactive decay
|
||||
old_verboseCmd = new G4UIcmdWithAnInteger("/grdm/verbose",this); // To be removed in G4 11.0
|
||||
old_verboseCmd->SetGuidance("Set verbose level: 0, 1, 2 or 3");
|
||||
old_verboseCmd->SetParameterName("OldVerboseLevel",true);
|
||||
old_verboseCmd->SetDefaultValue(1);
|
||||
old_verboseCmd->SetRange("OldVerboseLevel>=0");
|
||||
|
||||
verboseCmd = new G4UIcmdWithAnInteger("/process/had/rdm/verbose",this);
|
||||
verboseCmd->SetGuidance("Set verbose level: 0, 1, 2 or 3");
|
||||
verboseCmd->SetParameterName("VerboseLevel",true);
|
||||
verboseCmd->SetDefaultValue(1);
|
||||
verboseCmd->SetRange("VerboseLevel>=0");
|
||||
|
||||
// This command allows the user to define its own decay datafile for a given isotope
|
||||
old_userDecayDataCmd = new G4UIcommand("/grdm/setRadioactiveDecayFile",this); // To be removed in G4 11.0
|
||||
G4UIparameter* old_Z_para= new G4UIparameter("Z_isotope",'i',true);
|
||||
old_Z_para->SetParameterRange("Z_isotope > 0");
|
||||
old_Z_para->SetGuidance("Z: Charge number of isotope");
|
||||
G4UIparameter* old_A_para= new G4UIparameter("A_isotope",'i',true);
|
||||
old_A_para->SetParameterRange("A_isotope > 1");
|
||||
old_A_para->SetGuidance("A: mass number of isotope");
|
||||
G4UIparameter* old_FileName_para= new G4UIparameter("file_name",'s',true);
|
||||
old_FileName_para->SetGuidance("Name of the user data file");
|
||||
old_userDecayDataCmd->SetParameter(old_Z_para);
|
||||
old_userDecayDataCmd->SetParameter(old_A_para);
|
||||
old_userDecayDataCmd->SetParameter(old_FileName_para);
|
||||
|
||||
userDecayDataCmd = new G4UIcommand("/process/had/rdm/setRadioactiveDecayFile",this);
|
||||
G4UIparameter* Z_para= new G4UIparameter("Z_isotope",'i',true);
|
||||
Z_para->SetParameterRange("Z_isotope > 0");
|
||||
Z_para->SetGuidance("Z: Charge number of isotope");
|
||||
G4UIparameter* A_para= new G4UIparameter("A_isotope",'i',true);
|
||||
A_para->SetParameterRange("A_isotope > 1");
|
||||
A_para->SetGuidance("A: mass number of isotope");
|
||||
G4UIparameter* FileName_para= new G4UIparameter("file_name",'s',true);
|
||||
FileName_para->SetGuidance("Name of the user data file");
|
||||
userDecayDataCmd->SetParameter(Z_para);
|
||||
userDecayDataCmd->SetParameter(A_para);
|
||||
userDecayDataCmd->SetParameter(FileName_para);
|
||||
|
||||
// This commands allows the user to define its own evaporation data file for a given isotope
|
||||
old_userEvaporationDataCmd = new G4UIcommand("/grdm/setPhotoEvaporationFile",this); // To be removed in G4 11.0
|
||||
G4UIparameter* old_Z_para_ = new G4UIparameter("Z_isotope",'i',true);
|
||||
old_Z_para_->SetParameterRange("Z_isotope > 0");
|
||||
old_Z_para_->SetGuidance("Z: Charge number of isotope");
|
||||
G4UIparameter* old_A_para_ = new G4UIparameter("A_isotope",'i',true);
|
||||
old_A_para_->SetParameterRange("A_isotope > 1");
|
||||
old_A_para_->SetGuidance("A: mass number of isotope");
|
||||
G4UIparameter* old_FileName_para_ = new G4UIparameter("file_name",'s',true);
|
||||
old_FileName_para_->SetGuidance("Name of the user data file");
|
||||
old_userEvaporationDataCmd->SetParameter(old_Z_para_);
|
||||
old_userEvaporationDataCmd->SetParameter(old_A_para_);
|
||||
old_userEvaporationDataCmd->SetParameter(old_FileName_para_);
|
||||
|
||||
userEvaporationDataCmd = new G4UIcommand("/process/had/rdm/setPhotoEvaporationFile",this);
|
||||
G4UIparameter* Z_para_ = new G4UIparameter("Z_isotope",'i',true);
|
||||
Z_para_->SetParameterRange("Z_isotope > 0");
|
||||
Z_para_->SetGuidance("Z: Charge number of isotope");
|
||||
G4UIparameter* A_para_ = new G4UIparameter("A_isotope",'i',true);
|
||||
A_para_->SetParameterRange("A_isotope > 1");
|
||||
A_para_->SetGuidance("A: mass number of isotope");
|
||||
G4UIparameter* FileName_para_ = new G4UIparameter("file_name",'s',true);
|
||||
FileName_para_->SetGuidance("Name of the user data file");
|
||||
userEvaporationDataCmd->SetParameter(Z_para_);
|
||||
userEvaporationDataCmd->SetParameter(A_para_);
|
||||
userEvaporationDataCmd->SetParameter(FileName_para_);
|
||||
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
G4RadioactiveDecaymessenger::~G4RadioactiveDecaymessenger ()
|
||||
{
|
||||
delete old_grdmDirectory; // To be removed in G4 11.0
|
||||
delete rdmDirectory;
|
||||
delete old_nucleuslimitsCmd; // To be removed in G4 11.0
|
||||
delete nucleuslimitsCmd;
|
||||
delete old_sourcetimeprofileCmd; // To be removed in G4 11.0
|
||||
delete sourcetimeprofileCmd;
|
||||
delete old_decaybiasprofileCmd; // To be removed in G4 11.0
|
||||
delete decaybiasprofileCmd;
|
||||
delete old_analoguemcCmd; // To be removed in G4 11.0
|
||||
delete analoguemcCmd;
|
||||
delete old_fbetaCmd; // To be removed in G4 11.0
|
||||
delete fbetaCmd;
|
||||
delete old_brbiasCmd; // To be removed in G4 11.0
|
||||
delete brbiasCmd;
|
||||
delete old_splitnucleiCmd; // To be removed in G4 11.0
|
||||
delete splitnucleiCmd;
|
||||
delete old_verboseCmd; // To be removed in G4 11.0
|
||||
delete verboseCmd;
|
||||
delete old_avolumeCmd; // To be removed in G4 11.0
|
||||
delete avolumeCmd;
|
||||
delete old_deavolumeCmd; // To be removed in G4 11.0
|
||||
delete deavolumeCmd;
|
||||
delete old_allvolumesCmd; // To be removed in G4 11.0
|
||||
delete allvolumesCmd;
|
||||
delete old_deallvolumesCmd; // To be removed in G4 11.0
|
||||
delete deallvolumesCmd;
|
||||
delete old_icmCmd; // To be removed in G4 11.0
|
||||
delete icmCmd;
|
||||
delete old_armCmd; // To be removed in G4 11.0
|
||||
delete armCmd;
|
||||
delete old_hlthCmd; // To be removed in G4 11.0
|
||||
delete hlthCmd;
|
||||
delete old_userDecayDataCmd; // To be removed in G4 11.0
|
||||
delete userDecayDataCmd;
|
||||
delete old_userEvaporationDataCmd; // To be removed in G4 11.0
|
||||
delete userEvaporationDataCmd;
|
||||
delete old_colldirCmd; // To be removed in G4 11.0
|
||||
delete colldirCmd;
|
||||
delete old_collangleCmd; // To be removed in G4 11.0
|
||||
delete collangleCmd;
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
void G4RadioactiveDecaymessenger::SetNewValue (G4UIcommand *command, G4String newValues)
|
||||
{
|
||||
// Old commands to be removed in G4 11.0
|
||||
if ( command == old_nucleuslimitsCmd ) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetNucleusLimits( old_nucleuslimitsCmd->GetNewNucleusLimitsValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/nucleusLimits in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_771", JustWarning, ed );
|
||||
} else if ( command == old_analoguemcCmd ) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetAnalogueMonteCarlo( old_analoguemcCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/analogueMC in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_772", JustWarning, ed );
|
||||
} else if ( command == old_fbetaCmd ) {
|
||||
theRadioactiveDecayContainer->SetFBeta( old_fbetaCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/fBeta in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_773", JustWarning, ed );
|
||||
} else if ( command == old_avolumeCmd ) {
|
||||
theRadioactiveDecayContainer->SelectAVolume( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/selectVolume in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_774", JustWarning, ed );
|
||||
} else if ( command == old_deavolumeCmd ) {
|
||||
theRadioactiveDecayContainer->DeselectAVolume( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/deselectVolume in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_775", JustWarning, ed );
|
||||
} else if ( command == old_allvolumesCmd ) {
|
||||
theRadioactiveDecayContainer->SelectAllVolumes();
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/allVolumes in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_776", JustWarning, ed );
|
||||
} else if ( command == old_deallvolumesCmd ) {
|
||||
theRadioactiveDecayContainer->DeselectAllVolumes();
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/noVolumes in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_777", JustWarning, ed );
|
||||
} else if ( command == old_brbiasCmd ) {
|
||||
theRadioactiveDecayContainer->SetBRBias( old_brbiasCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/BRbias in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_778", JustWarning, ed );
|
||||
} else if ( command == old_sourcetimeprofileCmd ) {
|
||||
theRadioactiveDecayContainer->SetSourceTimeProfile( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/sourceTimeProfile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_779", JustWarning, ed );
|
||||
} else if ( command == old_decaybiasprofileCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayBias( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/decayBiasProfile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_780", JustWarning, ed );
|
||||
} else if ( command == old_splitnucleiCmd ) {
|
||||
theRadioactiveDecayContainer->SetSplitNuclei( old_splitnucleiCmd->GetNewIntValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/splitNuclei in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_781", JustWarning, ed );
|
||||
} else if ( command == old_verboseCmd ) {
|
||||
theRadioactiveDecayContainer->SetVerboseLevel( old_verboseCmd->GetNewIntValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/verbose in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_782", JustWarning, ed );
|
||||
} else if ( command == old_icmCmd ) {
|
||||
theRadioactiveDecayContainer->SetICM( old_icmCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/applyICM in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_783", JustWarning, ed );
|
||||
} else if ( command == old_armCmd ) {
|
||||
theRadioactiveDecayContainer->SetARM( old_armCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/applyARM in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_784", JustWarning, ed );
|
||||
} else if ( command == old_hlthCmd ) {
|
||||
theRadioactiveDecayContainer->SetHLThreshold( old_hlthCmd->GetNewDoubleValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/hlThreshold in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_785", JustWarning, ed );
|
||||
} else if ( command == old_userDecayDataCmd ) {
|
||||
G4int Z,A;
|
||||
G4String file_name;
|
||||
const char* nv = (const char*)newValues;
|
||||
std::istringstream is(nv);
|
||||
is >> Z >> A >> file_name;
|
||||
theRadioactiveDecayContainer->AddUserDecayDataFile(Z,A,file_name);
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/setRadioactiveDecayFile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_786", JustWarning, ed );
|
||||
} else if ( command == old_userEvaporationDataCmd ) {
|
||||
G4int Z,A;
|
||||
G4String file_name;
|
||||
const char* nv = (const char*)newValues;
|
||||
std::istringstream is(nv);
|
||||
is >> Z >> A >> file_name;
|
||||
G4NuclearLevelData::GetInstance()->AddPrivateData(Z,A,file_name);
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/setPhotoEvaporationFile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_787", JustWarning, ed );
|
||||
} else if ( command == old_colldirCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayDirection( old_colldirCmd->GetNew3VectorValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/decayDirection in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_788", JustWarning, ed );
|
||||
} else if ( command == old_collangleCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayHalfAngle( old_collangleCmd->GetNewDoubleValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/decayHalfAngle in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_789", JustWarning, ed );
|
||||
}
|
||||
|
||||
// New commands
|
||||
if ( command == nucleuslimitsCmd ) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetNucleusLimits( nucleuslimitsCmd->GetNewNucleusLimitsValue( newValues ) );
|
||||
} else if ( command == analoguemcCmd ) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetAnalogueMonteCarlo( analoguemcCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == fbetaCmd ) {
|
||||
theRadioactiveDecayContainer->SetFBeta( fbetaCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == avolumeCmd ) {
|
||||
theRadioactiveDecayContainer->SelectAVolume( newValues );
|
||||
} else if ( command == deavolumeCmd ) {
|
||||
theRadioactiveDecayContainer->DeselectAVolume( newValues );
|
||||
} else if ( command == allvolumesCmd ) {
|
||||
theRadioactiveDecayContainer->SelectAllVolumes();
|
||||
} else if ( command == deallvolumesCmd ) {
|
||||
theRadioactiveDecayContainer->DeselectAllVolumes();
|
||||
} else if ( command == brbiasCmd ) {
|
||||
theRadioactiveDecayContainer->SetBRBias( brbiasCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == sourcetimeprofileCmd ) {
|
||||
theRadioactiveDecayContainer->SetSourceTimeProfile( newValues );
|
||||
} else if ( command == decaybiasprofileCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayBias( newValues );
|
||||
} else if ( command == splitnucleiCmd ) {
|
||||
theRadioactiveDecayContainer->SetSplitNuclei( splitnucleiCmd->GetNewIntValue( newValues ) );
|
||||
} else if ( command == verboseCmd ) {
|
||||
theRadioactiveDecayContainer->SetVerboseLevel( verboseCmd->GetNewIntValue( newValues ) );
|
||||
} else if ( command == icmCmd ) {
|
||||
theRadioactiveDecayContainer->SetICM( icmCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == armCmd ) {
|
||||
theRadioactiveDecayContainer->SetARM( armCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == hlthCmd ) {
|
||||
theRadioactiveDecayContainer->SetHLThreshold( hlthCmd->GetNewDoubleValue( newValues ) );
|
||||
} else if ( command == userDecayDataCmd ) {
|
||||
G4int Z,A;
|
||||
G4String file_name;
|
||||
const char* nv = (const char*)newValues;
|
||||
std::istringstream is(nv);
|
||||
is >> Z >> A >> file_name;
|
||||
theRadioactiveDecayContainer->AddUserDecayDataFile(Z,A,file_name);
|
||||
} else if ( command == userEvaporationDataCmd ) {
|
||||
G4int Z,A;
|
||||
G4String file_name;
|
||||
const char* nv = (const char*)newValues;
|
||||
std::istringstream is(nv);
|
||||
is >> Z >> A >> file_name;
|
||||
G4NuclearLevelData::GetInstance()->AddPrivateData(Z,A,file_name);
|
||||
} else if ( command == colldirCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayDirection( colldirCmd->GetNew3VectorValue( newValues ) );
|
||||
} else if ( command == collangleCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayHalfAngle( collangleCmd->GetNewDoubleValue( newValues ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user