Files
geant4/source/processes/hadronic/models/cascade/History
T
2020-12-04 12:30:43 +01:00

4626 lines
200 KiB
Plaintext

-------------------------------------------------------------------
==========================================================
Geant4 - an Object-Oriented Toolkit for Physics Simulation
==========================================================
History file for hadronic/models/cascade
----------------------------------------
This file should be used to summarize modifications introduced in the
code and to keep track of all tags.
---------------------------------------------------------------
* Please list in reverse chronological order (last date on top)
---------------------------------------------------------------
5 May 2020 Gunter Folger (hadr-casc-V10-06-04)
- Fix for clang10: confusing indentation caused by if
add {} around statements
-----------------------------------------------------
26 February 2020 Dennis Wright (hadr-casc-V10-06-03)
-----------------------------------------------------
- G4LightTargetCollider::collide() : avoid frequent energy conservation warning
from G4HadronicProcess by setting up "no interaction" final state below
threshold
13 January 2020 Dennis Wright (hadr-casc-V10-06-02)
----------------------------------------------------
- G4CascadeInterface.cc: fix memory leak by deleting ltcollider in class
dtor
10 January 2020 Michael Kelsey (hadr-casc-V10-06-01)
-----------------------------------------------------
- G4CascadeParamMessenger.cc: Ensure that Bertini-specific commands get
added to /process/had/cascade/ directory, instead of /process/had.
Requires resetting cmdDir=0 between CreateDirectory() calls.
16 December 2019 Vladimir Ivanchenko (hadr-casc-V10-06-00)
-----------------------------------------------------------
- G4CascadeCheckBalance: fixed outstanding problem of the interface
with native pre-compound model, which happens since in the
default de-excitation internal electron conversion become
enabled
7 November 2019 Dennis Wright (hadr-casc-V10-05-02)
-----------------------------------------------------
- G4LightTargetCollider: fix crash when gamma energy below deuteron
disintegration threshold and improve exception handling
5 November 2019 Dennis Wright (hadr-casc-V10-05-01)
-----------------------------------------------------
- new class G4LightTargetCollider to more accurately handle collisons
on p, d, t, 3He. Currently only gamma on protons and deuterons is
implemented.
29 May 2019 Dennis Wright (hadr-casc-V10-05-00)
------------------------------------------------
- fix bug found in biasing/B03 example due to FPE from unprotected sqrt
of pperp2 + qv - p1r*p1r in G4NucleiModel::boundaryTransition
19 November 2018 Dennis Wright (hadr-casc-V10-04-12)
-----------------------------------------------------
- fix bug # 2096: non-conservation in precompound interface
Four problems fixed:
G4PreCompoundDeexcitation::deExcite: do not use const reference as
input to theDeExcitation->DeExcite(G4Fragment) because G4PreCompound
can change the fragment and upset the energy balance
G4CollisionOutput::getTotalCharge: subtract electron charges in case
of internal conversion in G4PreCompound
G4CascadeCheckBalance::collide(const G4Fragment& fragment,
G4CollisionOutput& output):
Convert fragment momentum given in MeV to GeV (Bertini units)
and remove electrom masses from energy balance when internal conversion
occurs
09 November 2018 Gabriele Cosmo (hadr-casc-V10-04-11)
------------------------------------------------------
- Fixed few printout typos.
25 October 2018 Makoto Asai (hadr-casc-V10-04-10)
--------------------------------------------------
- G4CascadeParamMessenger.cc : add description to /process/had/
directory. Addressing to bug report #2020.
27 September 2018 Dennis Wright (hadr-casc-V10-04-09)
-------------------------------------------------------
- G4NucleiModel::boundaryTransition : fix by Natalia Toro (SLAC) to
prevent glancing incidence at shell boundaries from reflecting too
many times
19 September 2018 Dennis Wright (hadr-casc-V10-04-08)
-------------------------------------------------------
- G4CascadeT11pizNChannel.cc, G4CascadeT31piNChannel.cc,
G4CascadeT33piNChannel.cc : re-order particle types in final state
arrays so that pion is first and nucleon is second. Two body final
state methods assume this.
- G4CascadeKminusNChannel.cc, G4CascadeKminusPChannel.cc,
G4CascadeKplusNChannel.cc, G4CascadeKplusPChannel.cc,
G4CascadeKzeroBarNChannel.cc, G4CascadeKzeroBarPChannel.cc,
G4CascadeKzeroNChannel.cc, G4CascadeKzeroPChannel.cc :
same as above but re-order only for two- and three-body final states.
- G4CascadeT1GamNChannel.cc : re-order final state particle types so that
mesons are first in two- and three-body cases
17 September 2018 Dennis Wright (hadr-casc-V10-04-07)
-------------------------------------------------------
- G4NucleiModel: replace Kossov parameterization of gammaQDxsec with new
values coming from smooth line through deuteron photo-disintegration
data which include 2004 JLab data up to 3 GeV.
6 July 2018 Vladimir Ivanchenko (hadr-casc-V10-04-06)
------------------------------------------------------
- G4GDecay3 - fixed problem reported by CMS due to wrong kinematics
in the final state by removing loop check; adding protection
for low value of mother mass
7 June 2018 Dennis Wright (hadr-casc-V10-04-05)
--------------------------------------------------
- G4CascadePPChannel, G4CascadeNPChannel, G4CascadeNNChannel: extend strange
pair production channels to 6, 7, 8 and 9-body final states
- G4CascadeT11pizNChannel.cc : fix qnum conservation problem in 8-body final
states
2 May 2018 Dennis Wright (hadr-casc-V10-04-04)
-------------------------------------------------
- G4ElementaryParticleCollider
methods generateSCMpionAbsorption and
generateSCMmuonAbsorption did not produce correct nucleon pairs when
pion or muon was absorbed - both methods now re-written
quantum number conservation test added to method
collide(G4InuclParticle* bullet, G4InuclParticle* target,
G4CollisionOutput& output)
20 March 2018 Julia Yarba (hadr-casc-V10-04-03)
---------------------------------------------------
- Fix implementation of nuclear_rad_2par configurable key (G4CascadeParamMessenger.cc)
6 March 2018 Dennis Wright (hadr-casc-V10-04-02)
---------------------------------------------------
- G4CascadeT11pizNChannel.cc: extend strange pair production channels to
6,7,8 and 9 body final states
27 February 2018 Alberto Ribon (hadr-casc-V10-04-01)
-----------------------------------------------------
- G4NucleiModel : replaced obsolete std::bind2nd with std::bind .
2 February 2018 Dennis Wright (hadr-casc-V10-04-00)
-----------------------------------------------------
- Add strange pair production channels to list of 6, 7, 8 and 9-body
final states in classes G4CascadeT31piNChannel and G4CascadeT33piNChannel.
Modify template values accordingly in
G4CascadePiMinusNChannel.hh
G4CascadePiMinusPChannel.hh
G4CascadePiPlusNChannel.hh
G4CascadePiPlusPChannel.hh
27 November 2017 Dennis Wright (hadr-casc-V10-03-06)
-----------------------------------------------------
- G4CascadeInterface::createBullet, G4CascadeInterface::ApplyYourself:
rotation to z-axis unnecessary and may
cause irreproducibility. Remove it according to bug report #1990.
20 October 2017 Tatsumi Koi (hadr-casc-V10-03-05)
------------------------------------------------
- G4CascadeParameters.cc FERMI_SCALE and RAD_TRAILING are added to changeable parameters from HDP
Lower and upper limits of changeable parameters form HDP are registered
6 October 2017 Tatsumi Koi (hadr-casc-V10-03-04)
------------------------------------------------
- G4CascadeParameters.cc Remove protection for using G4HadronicDeveloperParameters
5 October 2017 Tatsumi Koi (hadr-casc-V10-03-03)
------------------------------------------------
- Adding comment for BEST_PAR in G4CascadeParameters and test/README
22 May 2017 Dennis Wright (hadr-casc-V10-03-02)
------------------------------------------------
- G4ElementaryParticleCollider::generateSCMmuonAbsorption: fix rare seg fault
spotted and diagnosed by Ralf Ehrlich (mu2e/Virgina). Added line
particles.clear();
if GetThreeBodyMomenta() returns no momenta.
1 May 2017 Tatsumi Koi (hadr-casc-V10-03-01)
---------------------------------------------------
- G4CascadeParameters.cc: Use G4HadronicDeveloperParameters as a tool
for sharing parameters between developers and experienced users.
Need to set environment variable of "TEST_HDP" for testing the tool.
13 April 2017 Michael Kelsey (hadr-casc-V10-03-00)
---------------------------------------------------
- G4CascadeCoalescence: Remove clusterHash() function and triedClusters
registry. Drop redundant calls of tryCluster() with subcombinatorics; all
combinations are handled, uniquely, in main loop over indices. Eliminates
significant memory usage seen with high-energy applications of BERT.
- test/clusterComb.cc, test/GNUmakefile: New standalone test to exercise
combinatoric behaviour of G4CascadeCoalescence (used in testing above
changes).
29 November 2016 Dennis Wright (hadr-casc-V10-02-05)
-----------------------------------------------------
- G4InuclCollider::photonuclearOkay(): fix segfault reported by Daren Sawkey
in bug report #1883
6 October 2016 Dennis Wright (hadr-casc-V10-02-04)
---------------------------------------------------
- G4EquilibriumEvaporator::deExcite: replace sampling of evaporation spectrum
with original Dostrovsky method
- paraMaker.cc: add comments
3 October 2016 Dennis Wright (hadr-casc-V10-02-03)
---------------------------------------------------
Mike Kelsey added the lines
process->PreparePhysicsTable(*part);
process->BuildPhysicsTable(*part);
in unit test cascade/test/cascade.cc to configure RunManager event loop
30 September 2016 Dennis Wright (hadr-casc-V10-02-02)
------------------------------------------------------
- add 8- and 9-body final states to K-, K0 and K0b induced reactions.
Classes affected: G4CascadeKminusNChannel, G4CascadeKminusPChannel,
G4CascadeKzeroBarNChannel, G4CascadeKzeroBarPChannel,
G4CascadeKzeroNChannel, G4CascadeKzeroPChannel
14 March 2016 Dennis Wright (hadr-casc-V10-02-01)
--------------------------------------------------
- G4InuclCollider.cc: re-instate getenv for photonuclearOkay(). This
method causes significant performance degradation and the physics needs
to be improved before it can made default
25 January 2016 Michael Kelsey (hadr-casc-V10-02-00)
-----------------------------------------------------
- G4InuclCollider.cc: Remove envvar which enables "photonuclearOkay()"
test. This test will now be used by default, improving the match for
production of neutrons and protons in the GDR region.
6 November 2015 Dennis Wright (hadr-casc-V10-01-13)
----------------------------------------------------
- G4CascadeKplusNChannel: extend to 9-body final states and 32 GeV using same
energy bins as G4CascadeKplusPChannel
16 October 2015 V.Ivanchenko (hadr-casc-V10-01-12)
---------------------------------------------------
- G4CascadeCoalescence.hh: Add #include "G4InuclElementaryParticle.hh", to
address compiler error from Cray (see Config HN 1764).
19 August 2015 V.Ivanchenko (hadr-casc-V10-01-11)
--------------------------------------------------
- G4NucleiModel.cc - Randomize.hh header is included
13 July 2015 M. Kelsey (hadr-casc-V10-01-10)
---------------------------------------------
- G4KaonSampler: Per D. Wright, modify to 30 bins, finely divided up to 1.5
GeV, very coarsely grained above 10 GeV. Binning optimized to isolate
various resonances in Kp and Kn spectra.
- G4CascadeKplusPChannel: Per D. Wright, use new G4KaonSampler binning,
with final states tabulated up to 9-body. Should dramatically improve
match to data.
26 June 2015 M. Kelsey (hadr-casc-V10-01-09)
---------------------------------------------
- G4CascadeCheckBalance.cc: Address Coverity #60845-60850, with incorrect
logical expression in diagnostic output.
22 June 2015 M. Kelsey (hadr-casc-V10-01-08)
---------------------------------------------
Follow new G4cbrt(int) by moving powers of Z and A out of argument. Lookup
table only covers real nuclei (up to about 300 or so).
G4EquilibriumEvaporator.cc
G4Fissioner.cc
bindingEnergyAsymptotic.cc
22 June 2015 M. Kelsey (hadr-casc-V10-01-07)
---------------------------------------------
Per request from G. Cosmo and A. Dotti, migrate the five "TLS" local buffers
to use the new G4AutoDelete mechanism. This removes them as spurious memory
leaks at end of job.
G4InuclSpecialFunctions.cc
G4NucleiModel.cc
19 June 2015 M. Kelsey (hadr-casc-V10-01-06)
---------------------------------------------
Per request from A. Ribon, migrate few remaining instances of std::pow,
std::log, and std::exp to Geant4's VDT equivalents (G4Pow, G4Log, G4Exp).
Only G4Pow is problematic, requiring use of singleton pointer instead of
direct replacement.
G4CascadeFinalStateAlgorithm.cc
G4FissionStore.cc
G4Fissioner.cc
G4IntraNucleiCascader.cc
- G4InuclSpecialFunctions: As above, and define G4cbrt(G4int) which uses
G4Pow::Z13() with lookup table for integer arguments (e.g. Z, A, N).
8 June 2015 M. Kelsey (hadr-casc-V10-01-05)
--------------------------------------------
Per request from A. Ribon and ATLAS, mark every while loop in code with
special comment string authenticating that it terminates.
G4BigBanger.cc
G4CascadeFinalStateAlgorithm.cc
G4CascadeInterface.cc
G4ElementaryParticleCollider.cc
G4EquilibriumEvaporator.cc
G4FissionStore.cc
G4Fissioner.cc
G4GDecay3.cc
G4IntraNucleiCascader.cc
G4InuclCollider.cc
G4InuclNuclei.cc
G4InuclParamAngDst.cc
G4NonEquilibriumEvaporator.cc
G4NucleiModel.cc
23 March 2015 M. Kelsey (hadr-casc-V10-01-04)
----------------------------------------------
- G4CascadeInterface.cc: Call static Initialize() function in constructor,
for sequential builds or master thread. Requires global-V10-01-08.
23 April 2015 A. Ribon (hadr-casc-V10-01-03)
---------------------------------------------
- G4PreCompoundDeexcitation: delete precompound products (i.e.
G4ReactionProduct objects) before cleaning and deleting their
vector container.
23 March 2015 M. Kelsey
------------------------
- G4KaonSampler, G4HyperonSampler: NEW Copies of G4KaonHypSampler, which
will eventually diverge with different energy binning, in order to extend
kaon and hyperon final state tables to ~30 GeV.
23 February 2015 M. Kelsey (hadr-casc-V10-01-02)
-------------------------------------------------
- G4InuclCollider: Speed up new photonuclearOkay() filter by checking final
state nucleus vs. target directly, instead of looping over secondaries.
Filter is still disabled behind G4CASCADE_CHECK_PHOTONUCLEAR envvar.
2 February 2015 M. Kelsey (hadr-casc-V10-01-01)
------------------------------------------------
- G4InuclCollider: Add special end-of-cascade test to require low-energy
photo-nuclear and lepto-nuclear events to produce at least one non-gamma
secondary. Currently hidden behind G4CASCADE_CHECK_PHOTONUCLEAR envvar.
Will address bug #1680 to increase neutron yield around the giant dipole
resonance, without model changes.
11 December 2014 M. Kelsey (hadr-casc-V10-01-00)
-------------------------------------------------
- G4CascadeParameters, G4CascadeParamMessenger: Make G4CASCADE_PIN_ABSORPTION
a double, specifying a probability for absorption. Requirement is
less-than, not less-than-or-equal, so 0. suppresses aborption in all
cases.
- G4ElementaryParticleCollider.cc: Use PIN_ABSORPTION value as probability.
Fix boosting of pion-nucleon absorption; recoil nucleus should not be
involved in boost.
11 December 2014 M. Kelsey
---------------------------
- G4CollisionOutput: Move "hard tuning" from setOnShell() to separate
function. Add code in setOnShell() to do "hard tuning" of quasi-elastic,
recomputing momentum for single particle and nuclear recoil directly.
11 December 2014 M. Kelsey
---------------------------
- G4IntraNucleiCascader: Add function to identify non-interacting particles
(e.g., neutrinos); in generateCascade(), move such particles directly to
output list, rather than transporting them through the nucleus. This
deals with the "trapped neutrino" case (below) more efficiently.
1 December 2014 M. Kelsey (hadr-casc-V10-00-20)
------------------------------------------------
- G4CascadParticle.cc: For stopped particles (zero path length), if at core
of nucleus switch "movingIn" flag to false to particle will be forced to
escape. Protects against very rare infinite loop in mu- capture (nu_mu
produced with tiny momentum, gets stuck in nucleus zone 0).
1 December 2014 M. Kelsey (hadr-casc-V10-00-19)
------------------------------------------------
- G4ElementaryParticleCollider.cc: In muon absorption, check return from
G4GDecay3 for null vector; report no-collision status and return.
- G4GDecay3.cc: Fix typo in error report to use correct class name.
21 November 2014 M. Kelsey (hadr-casc-V10-00-18)
-------------------------------------------------
Per A. Dotti, introduce G4AutoDelete for all singleton classes to avoid
end-of-job memory leaks:
G4CascadeChannelTables.cc,.hh (also make dtor public)
G4CascadeParameters.cc
G4MultiBodyMomentumDist.cc
G4TwoBodyAngularDist.cc
21 November 2014 M. Kelsey (hadr-casc-V10-00-17)
-------------------------------------------------
- G4PreCompoundDeexcitation.cc: Per V.I., fix memory leak on exit by passing
excitation handler through to PreCompound.
19 November 2014 M. Kelsey (hadr-casc-V10-00-16)
-------------------------------------------------
- G4CascadeInterface.cc: Fix parentheses in retryInelasticNucleus()
expression for conditional-compilation flag (does not affect defaults).
18 November 2014 M. Kelsey (hadr-casc-V10-00-15)
-------------------------------------------------
- G4CascadeInterface.cc: Fix possible infinite-loop condition where (nTries
>= maxTries) and momentum balance fails, by regrouping conditions in
retryInelasticNucleus().
11 November 2014 M. Kelsey (hadr-casc-V10-00-14)
-------------------------------------------------
- G4CascadeParameters.cc: Revert default changes in V10-00-12 tag: turn
off phase-space, trailing-effect, and PreCompound.
- G4InuclCollider.cc: Replace G4Fragment::GetA() with GetA_asInt().
- G4ElementaryParticleCollider.cc: Improve optional pion-nucleon
absorption. NOTE: This is DISABLED by default; used for studies of pion
stopping.
- G4NucleiModel.cc: Initialize local p1r variable in declaration.
30 October 2014 M. Kelsey (hadr-casc-V10-00-13)
------------------------------------------------
- G4CascadeParameters, G4CascadeParamMessenger: Add flag to enable
absorbing pion on a single nucleon. See G4EPCollider below for details.
- G4ElementaryParticleCollider: Add support for absorbing a pion with a
single nucleon (via a charge exchange interaction, e.g. pi- p -> n), with
momentum conservation handled by recoiling against the nucleus. This is
intended to improve the match to data for pi- capture.
- G4NucleiModel.cc: In boundaryTransition(), switch sign of "dv" so that
particle sees a barrier (next_zone potential > current potential) as
positive. In generateParticleFate(), pass (A,Z) to EPCollider for
possible nuclear-recoil calculations.
- G4CascadeCheckBalance.cc: Per V.Ivantchenko, use G4Fragment::GetZ_asInt(),
GetZ_asInt(). Should have been done long ago.
1 October 2014 M. Kelsey (hadr-casc-V10-00-12)
-----------------------------------------------
- G4CascadeCheckBalance: Change ctor arg from "const char*" to "const
G4String&" to avoid memory deallocation problems.
- G4CascadeColliderBase: Change ctor arg from "const char*" to "const
G4String&" to avoid memory deallocation problems.
- G4CascadeInterface.cc: Call both usePreCompoundDeexcitation() and
useCascadeDeexcitation() in ctor, with if-else.
- G4CascadeParameters.cc: Make PreCompound, phase space, trailing effect,
and light-ion clustering active by default. User must set envvars to "0"
to disable.
- G4InuclCollider.cc: Make PreCompound the default in ctor.
- G4VCascadeCollider: Change ctor arg from "const char*" to "const
G4String&" to avoid memory deallocation problems.
- G4VCascadeDeexcitation.hh: Change ctor arg from "const char*" to "const
G4String&" to avoid memory deallocation problems.
27 June 2014 M. Kelsey (hadr-casc-V10-00-11)
---------------------------------------------
- G4CascadeFinalStateAlgorithm.cc: Address bug #1558, using ".c_str()" in
diagnostic outputs, to avoid IBM XL compiler error.
23 May 2014 M. Kelsey (hadr-casc-V10-00-10)
--------------------------------------------
- G4InuclNuclei.cc: Avoid FPE in setExcitationEnergy() for zero Ekin. This
must be backported to 9.6 and 10.0.
9 May 2014 M. Kelsey (hadr-casc-V10-00-09)
-------------------------------------------
- G4PreCompoundDeexcitation.cc: Fix mistake in copying example code; created
a local copy instead of filling the data member.
9 May 2014 M. Kelsey (hadr-casc-V10-00-08)
-------------------------------------------
- 4PreCompoundDeexcitation.cc: Per V.Ivanchenko, attempt to use shared
instance of PreCompound by fetching from hadronic registry. Only if that
fails should a local instance be created.
9 April 2014 M. Kelsey (hadr-casc-V10-00-07)
---------------------------------------------
- G4IntraNucleiCascader.cc: Use const G4PD*.
- G4InuclEvaporation.cc: Remove temporary const_cast<G4PD*> (see 10 Mar).
12 March 2014 M. Kelsey (hadr-casc-V10-00-06)
----------------------------------------------
- G4CascadeParameters: Copy Gabriele's version of the singleton here, from
the 9.6-patch-03 branch.
10 March 2014 M. Kelsey (hadr-casc-V10-00-05)
----------------------------------------------
- G4CollisionOutput.cc: Use const G4PD* for G4HadronicProduct secondaries.
- G4InuclParticle: Apply "const G4PD*" everywhere for consistency with
hadr-util updates.
- G4InuclElementaryParticle: Apply "const G4PD*" everywhere for consistency
with hadr-util updates.
- G4InculEvaporation.cc: TEMPORARY: Use const_cast<G4PD*> to access ctor
of G4Fragment, until new hadr-util code is public.
10 March 2014 M. Kelsey (hadr-casc-V10-00-04)
----------------------------------------------
- G4IntraNucleiCascader.cc: Fix bug #1584, memory leak in secondaries.
10 March 2014 M. Kelsey (hadr-casc-V10-00-03)
----------------------------------------------
- G4CascadeParameters.cc: Restore original 10.0 version, because January
mods caused unexpected side effects in build, which aren't being fixed.
29 January 2014 G.Folger not tagged
-------------------------------------
- Removed cascade/utils from cascade/sources.cmake
16 January 2014 M.Kelsey (hadr-casc-V10-00-02)
-----------------------------------------------
- G4CascadeInterface: Move static member into const data, initialize in
ctor. This avoids calling G4CascadeParameters::Instance() before main().
- G4CascadeCoalescence: Move static members into const data, initialize in
ctor. This avoids calling G4CascadeParameters::Instance() before main().
- G4NucleiModel: Move static members which use envvars into const data,
initialize in ctors (with copy-and-paste code blocks). This avoids
calling G4CascadeParameters::Instance() before main().
7 January 2014 Dennis Wright (hadr-casc-V10-00-01)
---------------------------------------------------
- added new pi-nucleon 2-body angular distributions:
G4PipP2PipPAngDst, G4PimP2PimPAngDst, G4Pi0P2Pi0PAngDst and G4PimP2Pi0NAngDst.
Below 2.6 GeV, distributions taken from SAID phase shift calculations with
Coulomb phase removed. Above 2.6 GeV, taken from data.
- also modified: G4TwoBodyAngularDist, sources.cmake
6 January 2014 M.Kelsey (hadr-casc-V10-00-00)
----------------------------------------------
- G4CascadeParameters.cc: Improve singleton initialization by moving static
instance to pointer in file scope (anon namespace), check for null pointer
in Instance() call. Drop use of messenger (temporarily) since it's not
thread safe. This change needs to be backported to 9.6 and 10.0.
2 October 2013 V.Ivanchenko (hadr-casc-V09-06-52)
----------------------------------------------------
- G4NonEquilibriumEvaporator.hh - added forward declaration of G4Pow,
because after the revision of G4Pow cascade is not compiling anymore
1 October 2013 Michael Kelsey (hadr-casc-V09-06-51)
----------------------------------------------------
- G4NucleiModel: Make gammaQDinterp a regular data member, to avoid data
race condition with shared (const but mutable) object.
- G4EquilibriumEvaporator: Make QFinterp a regular data member, to avoid data
race condition with shared (const but mutable) object.
25 September 2013 Michael Kelsey (hadr-casc-V09-06-50)
-------------------------------------------------------
- G4NucleiModel: Remove G4Pow introduced below; replace usage with simple
"*= 2" inside loop.
24 September 2013 Michael Kelsey (hadr-casc-V09-06-49)
-------------------------------------------------------
Replace usage of std::log, std::exp, and std::pow with GEANT4 internal
functions with faster polynomial implementations.
G4BigBanger.cc
G4CascadeFinalStateAlgorithm.cc
G4EquilibriumEvaporator.cc
G4InuclParamMomDst.cc
G4InuclSpecialFunctions.cc
G4NonEquilibriumEvaporator.cc
G4NonEquilibriumEvaporator.hh
G4NucleiModel.cc
G4NucleiModel.hh
G4NumIntTwoBodyAngDst.icc
G4ParamExpTwoBodyAngDst.icc
29 August 2013 Michael Kelsey (hadr-casc-V09-06-48)
----------------------------------------------------
Address Coverity #52158 and 52161.
- G4InuclSpecialFunctions.hh: Add copy action declarations to paraMaker.
8 August 2013 Michael Kelsey (hadr-casc-V09-06-47)
---------------------------------------------------
More thread-safety fixes:
- G4InuclSpecialFunctions.hh: Replace paraMaker[Truncated] functions with
class object, in order to use thread-locally within evaporators.
- paraMaker.cc: Move function code into new class member functions.
- G4*EquilibriumEvaporator: Add data member for new "paraMaker" object.
Per A. Dotti, move local statics to file scope to avoid thread collisions:
- G4CascadeDeexciteBase.cc: Move zero vector.
- G4InuclParticle.cc: Move "G4DynamicParticle empty".
- G4NucleiModel.cc: Move static G4InuclElementaryParticle constructions to
data members.
4 August 2013 Michael Kelsey (hadr-casc-V09-06-46)
---------------------------------------------------
- G4CascadeInterface.cc: Fix bug #1513, replacing "Z=1" with "Z==1" in
boolean ternary operation.
18 July 2013 Michael Kelsey (hadr-casc-V09-06-45)
--------------------------------------------------
- G4CascadeDeexciteBase.cc: Address Coverity #51934, unitialized data
members.
- Added use of "Id" and "Name" keywords to many new files which were missing
them.
11 July 2013 Michael Kelsey
----------------------------
- G4CascadeFinalStateAlgorithm: Replace name "difr_const" with "oneOverE".
5 July 2013 Michael Kelsey (hadr-casc-V09-06-44)
-------------------------------------------------
- G4InuclParticleNames.hh: Provide particle identification functions,
equivalent to those in G4InuclElementaryParticle, for direct use of type
codes.
- G4InuclElementaryParticle.hh: Replace identification functions with calls
through to new G4InuclParticleNames functions.
3 July 2013 Michael Kelsey (hadr-casc-V09-06-43)
-------------------------------------------------
- G4CascadeFinalStateAlgorithm: Add Kopylov N-body phase space generation,
with function code copied from G4HadPhaseSpaceKopylov. Use with runtime
envvar flag (G4CASCADE_USE_PHASESPACE) in place of multi-parameter 3-body
and 4-body generators. Two-body distributions are not changed.
- G4CascadeParameters, G4CascadeParamMessenger: Add new envvar,
G4CASCADE_USE_PHASESPACE, and associated functions, to switch between
multiparameter and Kopylov N-body generators.
2 July 2013 Michael Kelsey
---------------------------
- G4NucleiModel.cc: Minor tweaks: generateInteractionLength() now returns
"large" (1000.) instead of input path length when calculations fail; this
eliminates the effect of "spath < path" vs. "spath <= path" comparisons.
For dibaryon absorption, use sum of invMFPs, not average. Small
improvements to some diagnostic messages.
28 June 2013 Michael Kelsey (hadr-casc-V09-06-42)
--------------------------------------------------
PROBLEM: Code committed below did not include last round of changes to
support multiple G4Fragments from G4Fissioner. Those were lost accidentally
during directory manipulation on my local disk.
- G4CascadeDeexciteBase: Add makeFragment() without momentum for at-rest
nuclei.
- G4Fissioner: Remove local G4InuclNuclei vector; create fission fragments as
G4Fragments directly into output buffer.
- G4CollisionOutput: Replace single recoil fragment with list; apply
associated changes throughout support functions.
- G4EquilibriumEvaporator.cc: Use G4Fragments output from G4Fissioner.
- G4CascadeDeexcitation.cc: Add printing of intermediate outputs from each
de-excitation stage.
28 June 2013 Michael Kelsey (hadr-casc-V09-06-41)
--------------------------------------------------
Reorganize de-excitation modules to use G4Fragment throughout process. Only
final ground-state nucleus will be instantiated as a G4InuclNuclei object.
This should substantially reduce the load on G4IonTable in MT operations.
- G4CascadeCheckBalance: Replace interface for "G4Fissioner" with version
which takes G4Fragments for target and output.
- G4CascadeColliderBase: Move explosion() functions and G4Fragment-related
valiateOutput() functions to new G4CascadeDeexciteBase.
- G4CascadeDeexciteBase: NEW concrete subclass of G4VCascadeDeexcitation.
Takes over "operational" support from G4CascadeColliderBase, including
explosion() functions, local copy of G4CascadeCheckBalance, and
conservation checking functions. Provides utilities to extract common
data from input G4Fragment for all modules, and to construct a G4Fragment.
- G4CascadeDeexcitation: Inherit from G4CascadeDeexciteBase.
- G4PreCompoundDeexcitation: Inherit from G4CascadeDeexciteBase.
- G4VCascadeDeexcitation: Inherit directly from G4VCascadeCollider.
- G4ExitonConfiguration: Add interface to copy from G4Fragment.
- G4EvaporationInuclCollider, G4NonEquilibriumEvaporator,
G4BigBanger, G4Fissioner, G4EquilibriumEvaporator: Move all to inherit
from G4CascadeDeexciteBase, replace collide() with deExcite(), use
G4Fragment in place of G4InuclNuclei everywhere except final ground-state
output.
- sources.cmake: Add G4CascadeDeexciteBase.hh and .cc.
28 June 2013 Michael Kelsey (hadr-casc-V09-06-40)
--------------------------------------------------
Improve encapsulation of pion and muon absorption through dibaryons.
- G4NucleiModel: Add optional argument to useQuasiDeuteron() (fixed spelling)
to take dibaryon code, validate charge-exchange interactions.
- G4ElementaryParticleCollider: Add function to split dibaryon into
component particle types; use G4NM::useQuasiDeuteron() for sanity checks
instead of nested if-blocks.
28 June 2013 Michael Kelsey (hadr-casc-V09-06-39)
--------------------------------------------------
Address Coverity 37230 and 37385.
- G4CascadeInterface.hh: Add unimplemented declarations for copy operations.
27 June 2013 Michael Kelsey (hadr-casc-V09-06-38)
--------------------------------------------------
- G4NucleiModel.cc: Minor tweak: change "spath==0." test to "path==0.", to
check actual path length (equivalent to zero-momentum), rather than
generated random value.
- G4InuclParticleNames: Add functions to convert enum values to strings,
for diagnostic messages. New .cc file required for implementation.
- G4CascadeData.icc: For diagnostics, use new enum-to-string function, add
explicit space between xsec values, and print only 10 values per line.
- G4CascadeInterpolator.icc: For diagnostics, change output to setw(6), and
print only 10 values per line.
- sources.cmake: Add G4InuclParticleNames.cc.
21 June 2013 Michael Kelsey (hadr-casc-V09-06-37)
--------------------------------------------------
- G4VCascadeDeexcitation: Disable collide() interface, with implementation
which throws exception when called. Subclasses will use deExcite()
interface, with a const-reference, directly (creating a G4InuclNuclei only
if necessary).
- G4CascadeDeexcitation: Remove collide() interface. Move code into
deExcite(), and create temporary G4InucleNuclei (with reusable buffer) as
needed. Add verbosity setting function.
- G4PreCompoundDeexcitation: Remove collide() interface; code uses
G4Fragment directly via deExcite().
- G4CascadeCheckBalance: Add interface to take G4Fragment initial state.
- G4CascadeColliderBase: Change explosion() to take const-ref G4Fragment.
Use new CheckBalance(G4Fragment) interface in validateOutput().
- G4EquilibriumEvaporator.hh: Change explosion() call-through to take
const-ref G4Fragment.
- G4InuclCollider.cc: Use G4Fragment interface to de-excitation modules and
validateOutput().
21 June 2013 Michael Kelsey (hadr-casc-V09-06-36)
--------------------------------------------------
- G4CascadeParameters: Add new flag to perform internal conservation checks,
replacing compile-time G4CASCADE_CHECK_ECONS preprocessor directive.
- G4CascadeParamMessenger: Add macro commands for USE_3BODYMOM and CHECK_ECONS
parameter flags.
- G4CascadeColliderBase: Remove doConservationChecks flag. Use run-time
flag (above) to conditionally instantiate CheckBalance, test pointer
before use.
- G4EquilibriumEvaporator: Remove turning-off of conservation checks after
fission. Follows removal of flag from G4CascadeColliderBase.
- GNUmakefile: Remove G4CASCADE_CHECK_ECONS preprocessor directive. Envvar
will be mapped to run-time parameter (above).
20 June 2013 Michael Kelsey (hadr-casc-V09-06-35)
--------------------------------------------------
Address numerous Coverity warnings which have build up since November 2011.
No modifications to working code were required.
G4BigBanger.hh G4InuclCollider.hh
G4CascadeCheckBalance.hh G4InuclNuclei.cc
G4CascadeColliderBase.hh G4InuclParticle.cc
G4CascadeDeexcitation.hh G4MultiBodyMomentumDist.hh
G4CascadeInterface.cc G4NonEquilibriumEvaporator.hh
G4CascadeRecoilMaker.hh G4NumIntTwoBodyAngDst.hh,.icc
G4ElementaryParticleCollider.hh G4ParamExpTwoBodyAngDst.icc
G4EquilibriumEvaporator.hh G4PreCompoundDeexcitation.hh
G4EvaporationInuclCollider.hh G4TwoBodyAngularDist.hh
G4Fissioner.hh G4VCascadeCollider.hh
G4GDecay3.cc G4VCascadeDeexcitation.hh
G4IntraNucleiCascader.hh
19 June 2013 Michael Kelsey (hadr-casc-V09-06-34)
--------------------------------------------------
- G4TwoBodyAngularDist.hh, G4MultiBodyMomentumDist.hh: Replace use of
"theInstance" with calls to "GetInstance()" to ensure instantiation in MT
environment.
19 June 2013 Michael Kelsey (hadr-casc-V09-06-33)
--------------------------------------------------
- G4TwoBodyAngularDist, G4MultiBodyMomentumDist: Fix thread collisions
in MT operation by changing singleton instances from "static const" to
"static G4ThreadLocal" pointers. GetInstance() instantiates the pointer
on first call (per thread). C.f. G4CascadeChannelTables.
19 June 2013 Alberto Ribon (hadr-casc-V09-06-32)
--------------------------------------------------
- G4NucleiModel.cc: fixed rare cases of non-reproducibility in the
method generateParticleFate. The members current_nucl1 and
current_nucl2 were not properly initialized in the case that
the interaction-partners list has one single element.
12 June 2013 Michael Kelsey (hadr-casc-V09-06-31)
--------------------------------------------------
Bug fix for validation problems seen leading up to 10.0-beta release.
- G4NucleiModel.cc: Undo change to test "spath<=path" (V09-06-25); this
caused all tested nucleons to be accepted for interaction, incorrectly.
Replace with explicit test on "spath==0." to address at-rest particles.
- G4CascadeFinalStateAlgorithm: Split FillDirections() into separate
functions for three- and many-body states, to restore old algorithm.
Three body throws the _last_ particle's direction, then computes recoils,
while many-body throws the first N-2 directions.
04 June 2013 Alberto Ribon (hadr-casc-V09-06-30)
-------------------------------------------------
- G4InuclNuclei.cc: Fix access to ions via the IonTable class.
24 May 2013 Michael Kelsey (hadr-casc-V09-06-29)
-------------------------------------------------
- G4NucleiModel: Continue trying to resolve FPE errors with inf and NaN.
Improve bounds checking on zone value passed to inverseMFP; move "large"
and "small" cutoffs to static const, set globally.
23 May 2013 Michael Kelsey (hadr-casc-V09-06-28)
-------------------------------------------------
- G4NucleiModel.cc: Fix initialization of dummy_convertor after setting
bullet and target momenta. For stopped particle outside nucleus, reset
"zone" value to outermost zone (avoid out-of-bounds accesses).
22 May 2013 Michael Kelsey (hadr-casc-V09-06-27)
-------------------------------------------------
- G4ElementaryParticleCollider.cc: Add protection if N-body generator fails
after too many retries. On Windows, out-of-bounds error was (correctly)
thrown.
- G4ParticleLargerEkin.hh, G4ParticleLargerBeta.hh: Change ">=" to ">" in
both cases, to avoid error in (extremely rare) case that both inputs are
identical. With floats, this is a ~2^-64 probability, but a Windows test
job managed to catch it.
21 May 2013 Michael Kelsey (hadr-casc-V09-06-26)
-------------------------------------------------
- sources.cmake: Added G4PP2PPAngDst.
20 May 2013 Dennis Wright
--------------------------
- added class G4PP2PPAngDst, which contains elastic pp and nn angular
distributions generated from numerically integrated SAID cross sections
and pp scattering data. Below 2.75 GeV SAID calculations were used with
Coulomb interactions turned off. Above 2.75 GeV pp scattering data is used.
Files modified: G4TwoBodyAngularDist.hh, .cc
11 May 2013 Michael Kelsey (hadr-casc-V09-06-25)
-------------------------------------------------
- G4NucleiModel.cc: Protections for at-rest particles (muon capture): In
choosePointAlongTraj() set phat=(0,0,1); in generateInteractionPartners()
apply zero-path exit only for finite momentum. Move choosePointAlongTraj
up to initializeCascad(), rather than waiting for propagation. Change
tests on "spath < path" to <= so that at-rest particles still interact (in
these cases, spath and path will both be zero). Hide "zone 0 transition"
message behind verbosity.
- G4ElementaryParticleCollider.cc: Skip neutrinos silently in ::collide().
10 May 2013 Michael Kelsey
---------------------------
- G4NucleiModel.hh: Protect getPotential() from leptons, by checking for
ityp<0.
9 May 2013 Michael Kelsey (hadr-casc-V09-06-24)
------------------------------------------------
- G4CascadeFinalStateAlgorithm.cc: Fix bugs where two-body and three-body
momentum vectors were not properly rotated before return; caused energy
and momentum violations in hydrogen target cases. Improvided diagnostic
messages to match output from old G4EPCollider version.
8 May 2013 Dennis Wright/Michael Kelsey
----------------------------------------
Introduce muon-capture handling, with new particle types and three-body
muon-dibaryon interactions.
Modified files: G4InuclElementaryParticle.hh,.cc
G4InuclParticleNames.hh
G4CascadeChannelTables.cc
G4CascadeInterface.cc
G4ElementaryParticleCollider.hh,.cc
G4NucleiModel.hh,.cc
sources.cmake
New files: G4CascadeMuMinusPChannel.hh,.cc
G4GDecay3.hh,.cc
1 May 2013 Michael Kelsey (hadr-casc-V09-06-23)
------------------------------------------------
- G4CascadeInterface: Add static function Initialize() to create shared
objects in master thread, to avoid cross-thread collisions. Currently the
final-state lookup tables and quasideuteron particles are created.
- G4Dineutron, G4Diproton, G4UnboundPN: Remove "G4ThreadLocal" from static
pointer, to make it shared across threads. Modify initialization to get
G4ParticleTable "readiness" flag, and restore saved value.
22 April 2013 Michael Kelsey (hadr-casc-V09-06-22)
---------------------------------------------------
- G4CascadeChannelTables: Convert to thread-local singletons, to avoid
thread collisions inside "fillSigmaBuffer()" calls within tables (since
that mutable vector is shared across all threads).
22 April 2013 Michael Kelsey (hadr-casc-V09-06-21)
---------------------------------------------------
NOTE: Requires hadr-mod-util-V09-06-04.
- G4ElementaryParticleCollider: Replace all kinematics generation, except
for pion-dibaryon absorption, with G4CascadeFinalStateGenerator. Simplify
::collide(), eliminating nested if-blocks, moving replicated code outside
of if-blocks, adding returns on failure tests.
22 April 2013 Michael Kelsey (hadr-casc-V09-06-20)
---------------------------------------------------
NOTE: Requires hadr-mod-util-V09-06-04.
New interface for momentum and angular distribution generators, subclasses
of (new) models/util/G4VHadDecayAlgorithm. These are intended to be
"temporary" implementations, reproducing G4ElementaryParticleCollider
behaviour. G4EPCollider will be migrated to use GENBOD or another true
phase-space generator.
- G4CascadeFinalStateGenerator: Subclass of G4HadDecayGenerator, which
provides a "Configure" function to take Bertini-specific inputs (bullet,
target, and list of particle types) to set up distributions.
- G4CascadeFinalStateAlgorithm: Subclass of G4VHadDecayAlgorithm, used by
G4CascadeFSGenerator to reproduce G4EPCollider kinematics. Momentum
moduli are generated separately from angular distributions, then merged
together and tested for consistency.
- G4VThreeBodyAngDst.hh: Subclass of G4VTwoBodyAngDst, which provides
interface to generate polar angle for hN -> XYZ or NN -> XYZ states,
currently handled internally to G4EPCollider.
- G4InuclParamAngDst: Subclass of G4VThreeBodyAngDst which implements the
parametrized "abn[2][4][4]" arrays in G4EPCollider. This is exactly
analogous to the recently introduced G4InuclParamMomDst.
- G4HadNucl3BodyAngDst: Instance of G4InuclParamAngDst for (h,Y,g)N -> XYZ
interactions.
- G4NuclNucl3BodyAngDst: Instance of G4InuclParamAngDst for N N -> XYZ
interactions.
- G4TwoBodyAngularDist: Add interface to access three-body distributions.
- sources.cmake: Add all new source files to lists.
22 April 2013 Michael Kelsey (hadr-casc-V09-06-19)
---------------------------------------------------
Minor code cleanup before deploying some major revisions.
- G4CascadeCoalescence: Replace _TLS_ local variable with mutable data member.
- G4NucleiModel.cc: Reduce number of scoping levels by adding exit returns
at strategic points.
- G4VTwoBodyAngDst.hh: Remove unnecessary #include <vector>.
21 March 2013 Dennis Wright (hadr-casc-V09-06-18)
---------------------------------------------------
- sources.cmake: Add new G4NP2NPAngDst class.
21 March 2013 Dennis Wright (hadr-casc-V09-06-17)
---------------------------------------------------
- created class G4NP2NPAngDst to handle np and pn elastic scattering
by sampling histograms taken directly from data
- added above class to G4TwoBodyAngularDist, replacing old np, pn
sampling
14 March 2013 Michael Kelsey (hadr-casc-V09-06-16)
---------------------------------------------------
- G4CascadeCoalescence.cc, G4InuclSpecialFunctions.cc, G4NucleiModel.cc:
Undo some of the changes made in hadr-casc-V09-06-01 (29 Jan 2013) per
recent guidance from Andrea. Specifically, TLS pointers cannot be
initialized with "new", but must be initialized null, then instantiated
with an if-block.
- G4InuclNuclei.cc: Replace TLS local variable in makeNuclearFragment()
(static function) with a file-scoped non-const static map. Incorporate
thread-locking (mutex) around all accesses to the shared map, since STL is
inherently not thread safe.
11 March 2013 Michael Kelsey (hadr-casc-V09-06-15)
---------------------------------------------------
- G4HadNucl4BodyMomDst.cc: Fix comment describing function as ">= 4-body".
- G4MultiBodyMomentumDist.cc: Use envvar (G4CASCADE_USE_3BODYMOM) to enable
separate 3-body momentum generators.
- G4CascadeParameters: Add G4CASCADE_USE_3BODYMOM envvar.
- G4InuclSpecialFunctions: Add new "randomInuclPowers()" function to
compute power expansion of random value for momentum and cos(theta)
distributions.
- G4ElementaryParticleCollider.cc: Move INUCL-style calculation (powers of
Ekin and random S) to G4InuclSpecialFunctions.
- G4InuclParamMomDst.cc: Move INUCL-style calculation (powers of
Ekin and random S) to G4InuclSpecialFunctions.
8 March 2013 Michael Kelsey
----------------------------
- G4VMultiBodyMomDst.hh, G4VTwoBodyAngDst.hh: Add GetName() function to
return name string, for use with diagnostic utilities.
Add SVN use of 'Id' keyword to all new source files.
7 March 2013 Michael Kelsey (hadr-casc-V09-06-14)
--------------------------------------------------
Introduce multi-body final state momentum distribution classes and factory,
modelled on the two-body angular distribution system. Leaf classes
implement functionality of G4EPCollider::getMomModuleFor2toMany(), split by
initial state and multiplicity.
- G4VMultiBodyMomDst: Abstract base class for all multi-body final state
momentum generators. Subclasses may cover one or several categories.
- G4InuclParamMomDst: Intermediate base class implementing parametrization
in G4EPCollider, derived from original INUCL Fortran code, with power
expansions in Ekin and random fraction. Subclasses provide coeffient
arrays for specific initial state and multiplicity, with subarrays for
different final-state particles.
- G4NuclNucl3BodyDst: Leaf class for pp,pn,nn 3-body final state from INUCL.
- G4NuclNucl4BodyDst: Leaf class for pp,pn,nn >= 4-body final state from INUCL.
- G4HadNucl3BodyDst: Leaf class for Xp,Xn 3-body final state from INUCL.
- G4HadNucl4BodyDst: Leaf class for Xp,Xn >= 4-body final state from INUCL.
- G4MultiBodyMomentumDist: Factory class to select individual generators
above from initial-state code and multiplicity.
- G4ElementaryParticleCollider.cc: Replace getMomModuleFor2toMany() with
call to G4MultiBodyMomentumDist factory and constituent generators.
7 March 2013 Michael Kelsey
----------------------------
- G4ElementaryParticleCollider: Reverse order of indices for rmn[][][] array
used for multibody momentum selection, and abn[][][] used for three-body
angular distribution. This allows direct grouping by initial state, so
functionality can be refactored later.
6 March 2013 Michael Kelsey
----------------------------
- G4CascadeChannelTables: Implement global Print() function which dumps all
tables registered in map.
- G4ElementaryParticleCollider: Remove printFinalStateTables() function,
do work directly in G4CascadeChannelTables. Replace numeric values of
particle-type checks with enums. Add detailed comments explaining array
indices for momentum arrays.
6 March 2013 Michael Kelsey (hadr-casc-V09-06-13)
--------------------------------------------------
Remove obsolete directories evaporation/ and utils/.
- GNUmakefile, CMakeLists.txt: Remove references to obsolete
subdirectories and their corresponding libraries.
NOTE: This tag requires changes at the top level of processes/CMakeLists.txt
and must not be used independently of those changes.
6 March 2013 Michael Kelsey (hadr-casc-V09-06-12)
--------------------------------------------------
- G4CascadeHistory.cc: Cast calls to "getCharge()" to G4int to avoid
compiler warnings.
5 March 2013 Michael Kelsey (hadr-casc-V09-06-10, -11)
--------------------------------------------------
- G4CascadeHistory: Support "reabsorbed" cascade particles (excitons and
trapped decays) using "-1 daughters" as a flag. Add heading with legend
to output.
- G4IntraNucleiCascader.cc: Add exciton and trapped-decay info to history.
Move history reporting outside of "itry" loops (only shows final version).
4 March 2013 Michael Kelsey (hadr-casc-V09-06-09)
--------------------------------------------------
- G4CascadeHistory: NEW container class to collect all secondaries, along
with generated daughters, and report cascade structure hierarchically.
- G4CascadParticle: Add new index data member for use with G4CascadeHistory.
- G4CascadeParameters: Add new G4CASCADE_SHOW_HISTORY envvar to activate
use of G4CascadeHistory.
- G4CascadeParamMessenger: Add macro command for G4CASCADE_SHOW_HISTORY.
- G4IntraNucleiCascader: Add option G4CascadeHistory data member, created
and used only if G4CASCADE_SHOW_HISTORY envvar is set.
- sources.cmake: Add G4CascadeHistory.hh and .cc.
3 March 2013 Michael Kelsey (hadr-casc-V09-06-08)
--------------------------------------------------
Re-tag with subdirectories "utils" and "evaporation" (excluded by mistake).
2 March 2013 Michael Kelsey (hadr-casc-V09-06-07)
--------------------------------------------------
- G4NucleiModel: Encapsulate forcing decision in forceFirst() function,
apply to photons only, not hadrons.
27 February 2013 Michael Kelsey (hadr-casc-V09-06-06)
------------------------------------------------------
- G4NucleiModel: Modify choosePointAlongTraj() to use mean free path to
bias point selection non-uniformly in each zone. Make member functions
protected (instead of private) to allow external testing.
- G4BarashenkovTwoBodyAngDst: RENAME to G4ParamExpTwoBodyAngDst; previous
name was a misattribution.
- sources.cmake: Follow renaming above.
- G4GammaNuclAngDst, G4HadNElastic1AngDst, G4HadNElastic2AngDst,
G4NuclNuclAngDst, G4PiNInelasticAngDst: Follow renaming of base class.
25 February 2013 Michael Kelsey
--------------------------------
- G4RegionModel, G4BertiniElasticCollision, G4BertiniHydrogenCollision:
REMOVE obsolete, unused code.
- sources.cmake: Remove obsolete code above.
23 February 2013 Michael Kelsey (hadr-casc-V09-06-05)
------------------------------------------------------
- G4NucleiModel.cc: Spurious character got into .cc file during save/commit.
23 February 2013 Michael Kelsey (hadr-casc-V09-06-04)
------------------------------------------------------
- G4NucleiModel.cc: Fix zone-density weighting in choosePointAlongTraj. Now
done correctly, if not with optimal code efficiency: more points will be
chosen in core of nucleus than in outer shell. Work needed to reduce
vector arithmetic, move std:vector<>'s out to class data members, etc.
21 February 2013 Michael Kelsey
--------------------------------
- G4VTwoBodyAngDst: Bug fix: Data member "theName" should be a local copy of
the ctor input string, not a reference to it. When literals are passed
in, a _temporary_ object is created for the ctor which then goes out of
scope, leaving an undefined reference behind. This causes segfaults when
running with verbosity.
- G4CascadParticle: Move ctor body to .cc file, use global envvar to set
initial verbosity (no other code changes verbosity of cparticles).
- G4NucleiModel: Add function to select random point along particle's
trajectory, use with incident photons at initial step to nucleus.
Selection is weighted by average nucleon density in each zone. Code uses
mutliple local G4ThreeVector and std::vector buffers, which need to be
made class members or static-local to reduce memory churn.
21 February 2013 Michael Kelsey (hadr-casc-V09-06-03)
------------------------------------------------------
- G4TwoBodyAngularDist: NEW Factory singleton containing all of the
angular-distribution generators created below. Code from G4EPCollider to
choose generator based on initial and final states moved here, accessed
through static function.
- G4ElementaryParticleCollider: Angular distribution generators moved to
new singleton factory. Access to factory is through a static function, so
it can be shared across MT threads.
20 February 2013 Michael Kelsey
--------------------------------
- G4VTwoBodyAngDst: Add Id string.
- G4NumIntTwoBodyAngDst: Convert to templated, using array dimensions as
template arguments (c.f. G4CascadeSampler). Pass references to C-style
arrays as ctor arguments, use to initialize C-style array const
references. Add local C-style array as reuable buffer for interpolation.
Add Id string. Move .cc file to .icc, referenced from .hh, as required
for template instantiation.
- G4GamP2NPipAngDst, G4GamP2PPi0AngDst: Follow change of base to templated
form, passing arrays as base ctor args, move array initializations to
namespace with "static const". Add Id string.
Extract parametrized two-body angular distribution code from
G4ElementaryParticleCollider to new subclasses of G4VTwoBodyAngDst. These
subclasses will likely be replaced over time with numerically-integrated
CDFs as above.
- G4BarashenkovTwoBodyAngDst: Templated base class for double-exponential
two-body parametrizations, extracted from G4EPCollider.
- G4GammaNuclAngDst, G4NuclNuclAngDst, G4PiNInelasticAngDst,
G4HadNElastic1AngDst, G4HadNElastic2AngDst: Sublcasses of
G4BarashenkovTwoBodyAngDst, with parameter arrays and energy bins
extracted G4EPCollider.
- sources.cmake: Follow filename changes to G4NumIntTwoBodyAngDst.cc -> .icc,
add new parametrized angular distribution classes.
31 January 2013 Dennis Wright (hadr-casc-V09-06-02)
----------------------------------------------------
Add detailed two-body final state angular distributions for (gamma,p) and
(gamma,n) reactions, using tables of numerical integrals to sample cos(theta)
- created base classes G4VTwoBodyAngDst and G4NumIntTwoBodyAngDst, and concrete
classes G4GamP2NPipAngDst and G4GamP2PPi0AngDst to hold the tables
- added these channels to G4ElementaryParticleCollider::
- added new cross section data to G4CascadeT1GamNChannel
29 January 2013 Michael Kelsey (hadr-casc-V09-06-01)
-----------------------------------------------------
In consultation with Andrea Dotti, revert or modify many of the automatic
code changes (below) for improved MT performance.
- G4Cascade*Channel.hh,cc: Restore "static const" declarations of all final
state arrays, eliminate use of "initialize()" function. In all of the .hh
files, declare "static const data_t data;" to allow sharing across threads.
- G4CascadeFunctions.hh,cc: Restore DATA::data as simple object, not
pointer.
- G4NucleiModel.hh,cc: Move function-static arrays and interpolator for
gamma-quasideuteron cross sections to be class members with file-scope
initialization. Eliminates need to use TLS pointers.
- G4Fissioner.hh,cc: Make two-element std::vector for nuclear fragments
class data member; use G4InuclNuclei::fill() to change contents.
- G4InuclSpecialFunctions.cc, G4CascadeCoalescence.cc: Collapse TLS pointer
initializtion to eliminate unncessary if-blocks.
- G4EquilibriumEvaporator.hh,cc, G4ElementaryParticleCollider.hh,cc: Move
function-static interpolators and arrays to be class members with
file-scope initialization. Eliminates need to use TLS pointers.
25 January 2013 Andrea Dotti et al.
------------------------------------
Apply automatic conversion to all code for Geant4-MT thread-safe operation.
20 December 2012 Michael Kelsey
--------------------------------
- G4ElementaryParticleCollider.cc: Add Omega tables to printout function,
remove line referring to gamma-N as "preliminary."
06 December 2012 Michael Kelsey (hadr-casc-V09-06-00)
------------------------------------------------------
- G4IntraNucleiCascader.cc: For rescattering, set generation number of
new secondaries to '1' instead of '0' (so they aren't identified as
projectiles).
- G4NucleiModel.cc: In generateParticleFate() set generation number of
interaction daughters to one more than the parent secondary. Eliminate
complex isProjectile() code in favor of checking for generation==0.
20 October 2012 Michael Kelsey (hadr-casc-V09-05-26)
-----------------------------------------------------
- G4CascadePPChannel.cc, G4CascadeNNChannel.cc, G4CascadeNPChannel.cc: For
continuous low-energy functions, add cutoff in K.E. to match zero-energy
cross-section value, and avoid divide-by-zero divergence.
19 October 2012 Dennis Wright
------------------------------
- for classes G4CascadePPChannel, G4CascadeNNChannel, G4CascadeNPChannel
use Stepanov's functions to fill in total and elastic cross section arrays
at all energy bins from 10 to 320 MeV inclusive. Below 10 MeV use
Stepanov's continuous functions to generate cross section.
15 October 2012 Dennis Wright (hadr-casc-V09-05-25)
----------------------------------------------------
- replace SAID cross sections with in-medium cross sections of
Li & Machleidt for incident energies below 420 MeV. Classes
changed: G4CascadePPChannel, G4CascadeNNChannel, G4CascadeNPChannel.
- method findCrossSection removed from G4CascadePPChannel and G4CascadeNPChannel
since no Coulomb is included in L&M cross sections
9 October 2012 Michael Kelsey (hadr-casc-V09-05-24)
---------------------------------------------------
- G4ExitonConfiguration: Add empty() function to test exciton state, reduce
printout to single line.
- G4InuclNuclei.cc: Report non-empty exciton configuration in print().
- G4NonEquilibriumEvaporator.cc: Add additional diagnostic messages.
- G4EquilibriumEvaporator.cc: Add additional diagnostic messages.
- G4CascadeCollisionOutput: Add calculations of net strangeness.
- G4CascadeCheckBalance: Add reporting of strangeness conservation (but do
not require validation).
1 October 2012 Michael Kelsey (hadr-casc-V09-05-23)
---------------------------------------------------
- sources.cmake: Add G4CascadeOmegaMinus*Channel.hh and .cc.
1 October 2012 Dennis Wright, M. Kelsey (hadr-casc-V09-05-22)
-------------------------------------------------------------
- G4CascadeChannelTables.cc: Add "om*pro" and "om*neu" to LoadTables.
- create classes G4CascadeOmegaMinusPChannel and G4CascadeOmegaMinusNChannel
containing partial cross sections for omega- p and omega- n reactions
25 September 2012 Gabriele Cosmo (hadr-casc-V09-05-21)
------------------------------------------------------
- Explicitly use inclusion of headers for system of units and physical
constants, in plan to remove implicit inclusion from globals.hh.
18 September 2012 Michael Kelsey (hadr-casc-V09-05-20)
------------------------------------------------------
- G4CascadeParamMessenger.cc: Fix complier warning from ctor initializers.
13 September 2012 Michael Kelsey (hadr-casc-V09-05-19)
------------------------------------------------------
- G4CascadeParamMessenger: NEW class to define UI macro commands for
setting the G4CascadeParameters (string) values, as an alternative to
environment variables.
- G4CascadeParameters: Add new G4CascadeParamMessenger (with friendship)
to fill envvar-mapped parameters (const char*) from UI interface.
- sources.cmake: Add G4CascadeParamMessenger.hh,cc, add dependences on
G4intercoms (libraries and include dirs).
- GNUmakefile: Add -I.../intercoms/include.
9 September 2012 Michael Kelsey (hadr-casc-V09-05-18)
-----------------------------------------------------
- G4CascadePPChannel.hh, G4CascadeNPChannel.hh: Replace 'typedef' with
subclass of templated base. Declare overridden findCrossSection()
function.
- G4CascadePPChannel.cc, G4CascadeNPChannel.cc: Implement overrrided
findCrossSection() function to apply analytic (parametrized) function for
very low energy projectiles, falling back to base interpolation otherwise.
7 September 2012 Michael Kelsey (hadr-casc-V09-05-17)
-----------------------------------------------------
- sources.cmake: Forgot to change list of source files to match renaming.
4 September 2012 Michael Kelsey (hadr-casc-V09-05-16)
-----------------------------------------------------
Per Dennis, rename all three nucleon-nucleon channel files to remove the
isospin designation. Files now match corresponding .hh files:
G4CascadeT1ppChannel.cc -> G4CascadePPChannel.cc
G4CascadeT1nnChannel.cc -> G4CascadeNNChannel.cc
G4CascadeT0npChannel.cc -> G4CascadeNPChannel.cc
4 September 2012 Michael Kelsey
-------------------------------
- G4CascadeT0npChannel.cc: Fix misplaced semicolon in exclusive xsec list.
3 September 2012 Dennis Wright
------------------------------
- G4CascadeT1ppChannel.cc, G4CascadeT1nnChannel.cc, G4CascadeT0npChannel.cc:
Use SAID calculations for total and elastic cross-sections up to 320 MeV.
31 August 2012 Michael Kelsey
-----------------------------
- G4CascadeT1NNChannel.cc: REMOVE. Split into separate pp and nn files.
- G4CascadeT1ppChannel.cc: NEW. Only proton-proton part of T1NNChannel.
- G4CascadeT1nnChannel.cc: NEW. Only neutron-neutron part of T1NNChannel.
- sources.cmake: Remove T1NNChannel, add T1ppChannel and T1nnChannel.
22 August 2012 Michael Kelsey (hadr-casc-V09-05-15)
---------------------------------------------------
Consolidate all user-configurable environment variables into singleton
container class, instead of having them local to the code which uses them.
This will provide a way to query and report on values in a consistent way.
- G4CascadeParameters: NEW singleton container class to hold and evaluate
any user-configured environment variables. Default values for parameters
are provided, with code moved from original locations (see below). Three
new envvars are also defined:
G4CASCADE_VERBOSE
Pre-set verbosity in G4CascadeInterface constructor,
passes down to all constituent modules.
G4CASCADE_USE_PRECOMPOUND
Select use of PreCompoundModel in G4CascadeInterface constructor.
G4NUCMODEL_USE_BEST
Pre-set all defaults for nuclear model with physical units.
- G4CascadeInterface.hh: Add new function for dumping configuration.
- G4CascadeInterface.cc: Replace environment variable usage with calls to
G4CascadeParameters. Add pre-setting of verbosity and PreCompoundModel.
Implement configuration dump as call-through to G4CascadeParameters.
- G4CascadeCoalescence.cc: Replace environment variable usage with calls to
G4CascadeParameters.
- G4IntraNucleiCascader.cc: Replace environment variable usage with calls to
G4CascadeParameters.
- G4NucleiModel.cc: Replace environment variable usage with calls to
G4CascadeParameters.
- sources.cmake: Add G4CascadeParameters.hh,.cc.
-----
NOTE: Tag hadr-casc-V09-05-14 and changes to G4CascadeInterface.cc were
lost due to SVN repository incident.
-----
3 July 2012 Michael Kelsey (hadr-casc-V09-05-13)
------------------------------------------------
- G4CascadeCoalescence.cc: Bug fix: list of clusters already tried was not
cleared at start of new event, so entries from previous events prevented
formation of valid clusters. Also improve diagnostic messages somewhat.
8 June 2012 Michael Kelsey (hadr-casc-V09-05-12)
------------------------------------------------
Address compiler warnings about variable-shadowing (local variable has same
name as data member or global variable) which appear when "-Wshadow" is used.
G4InuclSpecialFunctions.hh
G4CascadeSampler.icc
G4CascadeData.icc
G4InuclElementaryParticle.hh
G4InuclEvaporation.cc
G4EquilibriumEvaporator.cc
G4InuclElementaryParticle.cc
G4NonEquilibriumEvaporator.cc
G4NucleiModel.cc
G4CascadeInterface.cc
G4InuclSpecialFunctions.cc
G4ElementaryParticleCollider.cc
G4BigBanger.cc
(evaporation) G4BENeutronChannel.cc
(evaporation) G4BEChargedChannel.cc
(evaporation) G4BertiniEvaporationChannel.cc
25 May 2012 Michael Kelsey (hadr-casc-V09-05-11)
------------------------------------------------
- G4Dineutron.cc, G4Diproton.cc, G4UnboundPN.cc: Add code to protect
against warning messages from G4ParticleTable::Remove(), introduced with
particles-V09-05-03.
- G4CascadeCheckBalance.cc: Lower verbosity level for energy-conservation
reports, change violation rules to allow relative OR absolute passing,
consistent with new process-level checks.
- G4CascadeInterface.cc: Check for small negative projectile energy and
force to zero, to protect against occasional G4HadFinalState exceptions.
23 May 2012 Michael Kelsey (hadr-casc-V09-05-10)
------------------------------------------------
- G4CascadeInterface: Add local implementation of IsApplicable(), both the
base class (track,nucleus) and one using G4ParticleDefinition. Returns
true only if interaction tables are defined for projectile.
21 May 2012 Alberto Ribon (hadr-casc-V09-05-09)
-----------------------------------------------
- G4IntraNucleiCascader.cc: Specify mass when decay trapped particle.
This fixes reproducibility violations when hyperons are forced to
decay inside the nucleus.
17 May 2012 Alberto Ribon (hadr-casc-V09-05-08)
-----------------------------------------------
- G4Fissioner.cc: Removed static in local vectors AL1 and BET1 in the
method G4Fissioner::collide, to ensure reproducibility.
4 April 2012 Michael Kelsey (hadr-casc-V09-05-07)
--------------------------------------------------
- G4CascadeCoalescence.cc: Use std::ostream_iterator<size_t> to report
cluster indices, to avoid compiler warning.
21 March 2012 Michael Kelsey (hadr-casc-V09-05-06)
---------------------------------------------------
- G4NucleiModel.cc: Add check in isProjectile() for single-zone nuclei, and
ignore "movingInward" flag in that case.
20 March 2012 Michael Kelsey (hadr-casc-V09-05-05)
---------------------------------------------------
- G4NucleiModel.cc: Fill zone_volumes buffer for single-zone case.
14 March 2012 Michael Kelsey
-----------------------------
- test/: Tagged all existing, obsolete code as "OLD_Validation_Suite" for
future recovery if desired. Remove all code and files from active use, to
be replaced with our separate "ppi4GeV" utility program, suitably renamed.
9 March 2012 Michael Kelsey
----------------------------
- G4CascadeSigmaMinusPChannel.cc: Change zero-bin cross-sections for
Lambda-n and Sigma0-n, based on data from M. Goossens et al. measurements
of Sigma- capture (per J. Yarba).
- G4NucleiModel.cc: Add scale factor, set via envvar, for gamma absorption.
8 March 2012 Michael Kelsey
----------------------------
- G4NucleiModel.cc: In absorptionCrossSection() add binned spectrum derived
from Mikhail Kossov's gamma-D absorption data, for use with photons.
- G4ElementaryParticleCollider.cc: Modify sanity checks on dibaryon targets
to allow both photons and gamma to interact; gammas split the dibaryons
the same way pi0's do.
7 March 2012 Michael Kelsey
----------------------------
- G4NucleiModel: In generateInteractionPartners() and
absorptionCrossSection(), allow photons to be absorbed via dibaryon
(quasideuteron) excitation. Simplify and encapsulate path-length
computations in generateInteractionPartners(), with several new internal
functions, and a buffer to store the zone-by-zone shell volumes.
5 March 2012 Michael Kelsey
----------------------------
- G4CascadParticle.hh: Add public accessor for cumulative path length.
- G4NucleiModel.cc: In generateInteractionPartners(), check to see if
CParticle is incident projectile (inbound from outside nucleus, not
created in outer zone). If so, force interaction to be attempted rather
than cutting on mean free path.
- G4CascadeKminusPChannel.cc: Modify two-body cross-section values in
zero-energy bin, to reflect stopping data from Julia Yarba.
25 January 2012 Michael Kelsey (hadr-casc-V09-05-04)
-----------------------------------------------------
- G4CascadeInterface.cc: Check for no-interaction in retryInelasticProton,
both in return value and in debugging report.
25 January 2012 Michael Kelsey (hadr-casc-V09-05-03)
-----------------------------------------------------
- G4NucleiModel.hh: In getPotential() add test for ip==9 (photon) to return
zero potential. Otherwise it will return the 7 MeV flat pion potential,
which is not correct.
20 January 2012 Vladimir Ivantchenko (hadr-casc-V09-05-02)
-----------------------------------------------------------
- G4PreCompoundDeexcitation.cc: Do not delete pre-compound model and excitation
handler to avoid double deletion
6 January 2012 Dennis Wright (hadr-casc-V09-05-01)
----------------------------------------------------
- G4ElementaryParticleCollider.cc: add angular distributions for elastic and
inelastic 2-body final states of gamma p and gamma n reactions.
19 December 2011 Michael Kelsey (hadr-casc-V09-05-00)
------------------------------------------------------
- G4ElementaryParticle.cc: Expand diagnostics in getMomModuleFor2toMany(),
in generateSCMfinalState(), defer "particles.resize()" action until after
final-state properties have been validated. In case no final state can be
generated, this ensures that the failure propagates back up the calling
chain, instead of simply looping forever.
- G4NucleiModel.cc: If G4ElementaryParticle::collide() returns empty
output, stop propagating.
7 November 2011 Michael Kelsey (hadr-casc-V09-04-41)
-----------------------------------------------------
- G4NucleiModel.cc: Due to some validation discrepancies, revert structure
parameters to old non-physical values.
- G4ElementaryParticleCollider.cc: In sampleCMmomentumFor2to2(), hide
message about unrecognized initial-state behind verbosity flag.
3 November 2011 Dennis Wright (hadr-casc-V09-04-40)
-----------------------------------------------------
- G4CascadeInterface.hh, .cc: switch from Description() to ModelDescription()
27 October 2011 Gabriele Cosmo (hadr-casc-V09-04-39)
-----------------------------------------------------
- Added workaround to use 'this' pointer for internal calls in
G4CascadeFunctions.hh/.icc, to allow for compilation on Xcode on MacOX Lion.
18 October 2011 Michael Kelsey (hadr-casc-V09-04-38)
-----------------------------------------------------
- G4CascadParticle.cc: In getPathToTheNextZone(), check for zero momentum
(pp < 1e-9) and return zero path-length; this will support capture at rest.
- G4NucleiModel.cc: Change kaon potential to be positive, not negative, so
slow kaons will occasionally be captured.
7 October 2011 Dennis Wright, Michael Kelsey
---------------------------------------------
- sources.cmake: Add new channel files below.
- G4CascadeGamNChannel.hh, G4CascadeGamPChannel.hh, G4CascadeT1GamNChannel.cc:
NEW final state tables for gamma-nucleon interactions, with final states
up to 9-body, using the same energy binning as pion-nucleon.
- G4CascadeChannelTables.cc: Add new gamma-nucleon interaction states to
LoadTable() switch block.
- G4ElementaryParticleCollider.cc: Add printing of gamma-nucleon tables.
- G4EquilibriumEvaporator.cc: Replace hardwired particle codes with enums.
- G4InuclParticleNames.hh: Change photon code to '9', to avoid initial
state conflict between piMinus-n (= 5*2 = 10) and gamma-p (= 10*1 = 10).
4 October 2011 Michael Kelsey (hadr-casc-V09-04-37)
----------------------------------------------------
- G4IntraNucleiCascader.cc, G4ElementaryParticleCollider.cc,
G4InuclCollider.cc: Prepare for gamma-N interactions by checking for
existence of final-state tables, rather than for "isPhoton()".
28 September 2011 Michael Kelsey (hadr-casc-V09-04-36)
-------------------------------------------------------
- evaporation/src/G4BertiniEvaporation.cc: Migrate to integer A&Z. This
code is moribund; migration is to avoid compilation errors.
27 September 2011 Michael Kelsey (hadr-casc-V09-04-35)
-------------------------------------------------------
- G4CascadeCoalescence.cc: BUG FIX for Windows: Replace strtof() with strtod().
27 September 2011 Michael Kelsey (hadr-casc-V09-04-34)
-------------------------------------------------------
- G4CascadeCoalescence.cc: BUG FIX for GCC>4.2: Add missing #include <iterator>.
26 September 2011 Michael Kelsey (hadr-casc-V09-04-33)
-------------------------------------------------------
- G4ElementaryParticleCollider.cc: Protect against non-physical arguments
and FPE in two-body angular distributions.
- G4IntraNucleiCascader.cc: Replace compiler flag with one-time envvar
access in ctor to enable clustering.
23 September 2011 Michael Kelsey (hadr-casc-V09-04-32)
-------------------------------------------------------
- sources.cmake: Add G4CascadeChannel.cc.
- G4CascadeChannel: Add optional stream& argument to printTable(), and new
stream operator<<, calling virtual printTable().
- G4CascadeChannelTables: Add optional stream& argument to printTable().
- G4CascadeData, G4CascadeFunctions, G4CascadeSampler,
G4CascadeInterpolator: Add optional stream& argument to print()
functions, and pass through to members.
- G4ElementaryParticleCollider: Add optional stream& argument to
printFinalStateTables(), pass through to printing tables.
22 September 2011 Michael Kelsey
---------------------------------
- sources.cmake: Add G4ExitonConfiguration.cc, G4FissionConfiguration.cc
- G4CascadeInterface.cc: Modify throwNonConservationFailure() to be ready
to use G4ExceptionDescription, once G4HadronicException supports it.
Replace most G4cout-specific print() functions with stream operators, in
order to anticipate supporting G4ExceptionDescription streams.
- G4CascadParticle: Add ostream& to print(), without trailing endl. Define
operator<<, calling virtual print(). Affects two classes:
G4IntraNucleiCascader.cc G4NucleiModel.cc
- G4CollisionOutput: Add optional ostream& to printCollisionOutput(), with
G4cout as the default. No clients affected.
- G4ExitonConfiguration, G4FissionConfiguration: Replace print() with
stream operator<<, defined in new .cc files. Affects G4FissionStore.cc.
- G4InuclParticle, G4InuclNuclei, G4InuclElementaryParticle: Add ostream&
to printParticle(), renamed as print(), without trailing endl. Define
operator<< only in base class, calling virtual print(). Affects 12 classes:
G4BigBanger.cc G4CascadParticle.cc
G4CascadeCoalescence.cc G4CascadeInterface.cc
G4CollisionOutput.cc G4ElementaryParticleCollider.cc
G4EquilibriumEvaporator.cc G4EvaporationInuclCollider.cc
G4Fissioner.cc G4IntraNucleiCascader.cc
G4NonEquilibriumEvaporator.cc G4NucleiModel.cc
22 September 2011 Michael Kelsey
---------------------------------
- G4CascadeCoalescence: Add list of clusters already attempted, check list
at top of tryClusters() to reduce combinatorial explosion (factor of >10).
22 September 2011 Michael Kelsey (hadr-casc-V09-04-31)
-------------------------------------------------------
- G4CascadeCoalescence.cc: Create light ions without excitation energy.
This will violate energy conservation, but is necessary since the excess
from momentum exceeds the binding energy.
- G4IntraNucleiCascader.cc: Recompute recoil fragment after clustering, to
account for E-violation (above).
20 September 2011 Michael Kelsey
---------------------------------
- G4CascadeCoalescence.cc: Relative momenta computed in c.m. frame of
nucleon pair, not in event frame. Add environment variables for cuts:
DPMAX_2CLUSTER, DPMAX_3CLUSTER, DPMAX_4CLUSTER. Clean up interfaces
to use cluster as argument instead of polymorphic lists. Improve
combinatorics.
19 September 2011 Michael Kelsey
---------------------------------
- G4CascadeCoalescence: NEW factory class to implement conversion of
final-state nucleon "clusters" into light ions. Uses LAQGSM algorithm
(Sec. 2.3, http://lib-www.lanl.gov/la-pubs/00818645.pdf).
- G4IntraNucleiCascader: Add final-state clustering as OPTIONAL facility,
controlled through compile-time flag G4CASCADE_DO_COALESCENCE. Clustering
is done during cascade finalization.
- G4InuclNuclei.cc: Allow A=0,Z=0 to produce null definition pointer.
- G4InuclParticle: Add Coalescence to list of model IDs; move setDefinition
to .cc file and allow passing null pointer.
- GNUmakefile: Add G4CASCADE_DO_COALESCENCE flag.
16 September 2011 Michael Kelsey (hadr-casc-V09-04-30)
-------------------------------------------------------
- G4CascadeChannelTables: Add load-on-demand via GetTable(). Move static
implementations to .cc file (Windows compatibility issue).
- G4CascadeFunctions.icc: Remove self-registration from ctor.
- G4Cascade*Channel.cc: Remove all namespace self-instantiations;
initialization is inconsistent across platforms.
31 August 2011 Michael Kelsey
------------------------------
- G4CascadeInterface.cc: Undo copying of G4V3DNucleus; creates incorrect
PDG codes for proton and neutron.
31 August 2011 Michael Kelsey (hadr-casc-V09-04-29)
----------------------------------------------------
- G4NucleiModel.cc: Make "best guess" parameters defaults for structure model,
leave "old" versions in place with C-style comments on each line.
- G4CascadParticle.cc: Add protection against negative radicand.
29 August 2011 Michael Kelsey
------------------------------
- G4InuclNuclei: Add constructor to copy G4V3DNucleus.
- G4CascadeInterface.cc: Use new G4InuclNuclei ctor in ::Propagate()
- G4IntraNucleiCascader.cc: Fill excitation state with holes determined
from input G4V3DNucleus "hits".
25 August 2011 Michael Kelsey (hadr-casc-V09-04-28)
----------------------------------------------------
- G4EquilibriumEvaporator.cc: Remove unprotected diagnostic statement.
25 August 2011 Michael Kelsey (hadr-casc-V09-04-27)
----------------------------------------------------
- G4NucleiModel: Remove obsolete local cross-section arrays; use standard
tables, which are numerically equivalent. Add comment block with "best
guess" values for converting model to physical units (these will hopefully
become the defaults).
9 August 2011 Michael Kelsey (hadr-casc-V09-04-26)
---------------------------------------------------
- G4CascadParticle: Add ::fill() function with ctor args to allow loading
vectors by "assignment," rather than with temporaries.
- G4BigBanger.cc, G4ElementaryParticleCollider.cc:
Reduce memory churn by using resize() and array assignment instead of
push_back() with temporaries where appropriate.
- G4NucleiModel: Move return buffer from generateParticleFate to non-const
input argument, eliminating unnecessary copy.
- G4IntraNucleiCascader.cc: Move "new_cascad_particles" to be argument to
generateParticleFate(), for filling instead of copying.
- G4EquilibriumEvaporator.cc: Improve building final-state particles to
reduce creation of temporaries.
9 August 2011 Michael Kelsey
-----------------------------
- G4CascadeInterface.cc: Clean up Description() implementation somewhat.
- G4EquilibriumEvaporator: Move foutput to data member, use reference access.
9 August 2011 Dennis Wright
----------------------------
- G4CascadeInterface: Add Description() function for autogenerated HTML.
3 August 2011 Michael Kelsey (hadr-casc-V09-04-25)
---------------------------------------------------
- G4PreCompoundDeexcitation.cc: Add diagnostic output when processing results.
- G4CollisionOutput.cc: Add diagnostics for copying G4ReactionProducts, and
fix bug with momentum units (must convert to Bertini GeV).
2 August 2011 Michael Kelsey
-----------------------------
- G4CascadeChannel.hh: Add ctor and virtual dtor (with no action) to fix
Coverity report #29838.
2 August 2011 Michael Kelsey (hadr-casc-V09-04-24)
---------------------------------------------------
- G4CascadeInterface.cc: Use new G4DecayKineticTracks in Propagate to
handle short-lived inputs. Requires hadr-mod-util-V09-04-01.
1 August 2011 Michael Kelsey (hadr-casc-V09-04-23)
---------------------------------------------------
- G4InuclElementaryParticle: Add fill() functions to reuse existing object,
reducing memory churn due to creating temporaries.
- G4CascadeInterface.cc: Update local buffers to use G4InuclEP::fill().
- G4CollisionOutput.cc: Use resize() and set/fill to eliminate temporary
copies in addOutgoingParticles(G4ReactionProductVector*).
- G4IntraNucleiCascader: Add local buffers for rescattering target, use
fill to reduce memory churn, and eliminate memory leak!
31 July 2011 Michael Kelsey
----------------------------
- G4CascadeInterface: Add local buffers for bullet and target possibilities,
assign pointers to buffer addresses as appropriate. Reduces per-event
memory churn for each particle.
- G4EquilibriumEvaporator: Move "parms" buffer (pair<vector<>,vector<>>) to
data member, pre-allocate known size, to reduce per-event memory churn.
- G4FissionConfiguration.hh: Make ::print() const.
- G4FissionStore: Move "probs" vector to data member, reducing memory churn.
- G4Fissioner: Use C-style arrays as arguments to potentialMinimization,
since size is fixed. Reduces memory churn.
29 July 2011 Michael Kelsey
----------------------------
- G4CascadParticle.hh: Add functions to explicitly set all data members,
including initial path and generation, to support changes below. Re-order
member functions in set/get pairs.
- G4IntraNucleiCascader: Replace convertKineticToCascade() with
processSecondary(), which writes directly to G4CascadParticle "buffer" in
processing list. Eliminates new/delete cycling and memory churn.
29 July 2011 Michael Kelsey (hadr-casc-V09-04-22)
--------------------------------------------------
- G4CascadeChannelTables.cc: Use FindTable() to determine if table has been
created already or not. Add "clear()" to ctor to initialize empty map
(GCC 4.1.2 segfaults on first insertion otherwise). Add diagnostic
messages hidden with G4CASCADE_DEBUG_SAMPLER compiler flag.
28 July 2011 Michael Kelsey
----------------------------
Fix, or flag as "Ignore," all outstanding Coverity reports.
20228 G4CascadeFunctions.icc: Fix bug, compare (mult > maxMult) and set to
max on true. Otherwise, mult can overflow array dimension.
20230 G4CascadeInterpolator.icc: Remove "recursive" #include of .hh file.
20231 G4CascadeSampler.icc: Remove "recursive" #include of .hh file.
22951 G4EquilibriumEvaporator.cc: Check for icase<0 after assignment loop,
to avoid invalid array subscript.
22954 G4CascadeData.icc: Remove "recursive" #include of .hh file.
22955 G4CascadeFunctions.icc: Remove "recursive" #include of .hh file.
23843 G4EvaporationInuclCollider: Add dtor to delete EquilibriumEvaporator.
28776 G4InuclEvaporation.cc: Remove return following throw.
27 July 2011 Michael Kelsey (hadr-casc-V09-04-21)
--------------------------------------------------
- G4CascadeInterface.cc: Simplify NoInteraction() per V.Ivantchenko. No
particles are returned, but "SetEnergyChange" is used to communicate to
tracking that real track should be stopped and deposit all its energy.
- G4NucleiModel: Compared local kaon/hyperon cross-section tables with
sum-of-exclusive tables from G4Cascade*Channel.cc; all bin values below 10
GeV are identical. The channel tables have a somewhat more realistic
treatment of high energy projectiles (a logarithmic decrease rather than
flat). Remove the local arrays, using channel table lookup for everything.
25 July 2011 Michael Kelsey (hadr-casc-V09-04-20)
--------------------------------------------------
Make cross-section tables self-registering at job initialization. No switch
blocks needed any longer: new initial-state tables become usable without
any code modification.
- G4CascadeData: Add data member storing initial state argument.
- G4CascadeFunctions: Move constructor implementation to .icc file, where
registration to lookup table is done.
- G4CascadeChannelTables: Change from namespace back to class, with
std::map as data member. Add public function to register new table in
map, and return null pointer if lookup fails (i.e., no create-on-demand).
- G4Cascade*Channel.cc: Add local instance of each cross-section table,
used solely to trigger auto-registration in base class ctor. The
corresponding .hh files no longer appear anywhere else in Bertini code.
25 July 2011 Michael Kelsey (hadr-casc-V09-04-19)
--------------------------------------------------
- sources.cmake: Update HEADERS and SOURCES list with new code added 20
July 2011. This must be done manually.
22 July 2011 Michael Kelsey (hadr-casc-V09-04-18)
--------------------------------------------------
- G4CascadeInterface.cc: In makeDynamicParticle(), allow invalid type codes
in order to process, e.g., resonances from Propagate() input.
- G4InuclNuclei.hh: Fix bug in ctor (mom,A,Z,Eexc,model) -- failed to set
excitation energy; causes energy non-conservation in de-excitation code.
22 July 2011 Michael Kelsey (hadr-casc-V09-04-17)
--------------------------------------------------
- G4IntraNucleiCascader: Deprecate local "output_particles" list in favor
of using "output" (G4CollisionOutput) buffer directly. This will support
handling light ions and unrecognized particles for rescattering.
- G4CascadeCheckBalance: Replace std::vector<G4InuclEP> argument with
G4CollisionOutput in version of ::collide() for G4IntraNucleiCascader.
- G4CascadeRecoilMaker: Replace std::vector<G4InuclEP> argument with
G4CollisionOutput in version of ::collide() for G4IntraNucleiCascader.
21 July 2011 Michael Kelsey
----------------------------
- G4IntraNucleiCascader: For pre-cascade rescattering, put resonances, or
any particle which cannot be propagated by Bertini, directly onto output,
without decaying. Requires G4InuclEP constructor which takes G4PartDef
directly, avoiding possibly undefined type codes.
NOTE: The ::rescatter() process doesn't generate a proper recoil nucleus
because outgoing_particles is used, rather than output.
- G4InuclParticle: Modify all constructors to take the model code as an
optional argument, so that subclasses don't have to set it manually.
- G4InuclNuclei: Modify constructors to pass model code to base (as above),
instead of calling SetModel() explicitly.
- G4InuclElementaryParticle: Modify constructors to pass model code to base
(as above), instead of calling SetModel() explicitly. Add new constructor
which takes G4ParticleDefinition* argument instead of type code. Allows
client code to create objects without a valid (enumerated) type, e.g. for
passing pre-cascade resonances through to output.
21 July 2011 Michael Kelsey (hadr-casc-V09-04-16)
--------------------------------------------------
- G4ElementaryParticleCollider.cc: Hide "mult" argument to
getMomModule2toMany(), as it is no longer used (V. Uzhinsky's fix). Fixes
compilation warning from hadr-casc-V09-04-15.
- G4CascadeInterface.cc: In NoInteraction(), only projectile should be
copied to final state, not target nucleus.
- G4CascadeT1NNChannel.cc: Fix final 9-body final-state list for both nn
and pp: existing entries violate charge.
20 July 2011 Michael Kelsey
----------------------------
- G4CascadeInterface: Drop local copy of G4HadFinalState (theResult),
available directly from base class (theParticleChange). Add NoInteraction()
to copy input particle directly to return in case of problems.
Modify createBullet() to leave pointer null if not a valid particle; in
ApplyYourself(), check for both null bullets and bullet types without
interaction tables and return NoInteraction() in those cases. Fix bug in
reporting charge violation.
- G4CascadeChannel.hh: Repurpose this as non-template base class for all
cross-section tables, specifying public interface (pure virtual). Used
with multiple inheritance for G4CascadeFunctions<> to allow instantiation
and pointer return (below).
- G4CascadeChannel.cc: DELETE code from previous version of name.
- G4CascadeFunctions: Add inheritance from G4CascadeChannel, replace
static functions with virtual; must create instance from now on.
- G4CascadeChannelTables: NEW namespace with function to return
cross-section tables by pointer based on two-body initial state.
- G4ElementaryParticleCollider.cc: Remove all switch-blocks, replace with
calls to G4CascadeChannelTables; in PrintFinalStateTables, use convenience
funciton directly in G4CascadeChannelTables.
- G4NucleiModel.cc: Remove use of G4CascadeXXXChannel in switch block;
under "default:", make calls to G4CascadeTables.
19 July 2011 Michael Kelsey (hadr-casc-V09-04-15)
--------------------------------------------------
- G4CascadeInterface.cc: If accept/reject loop fails (maximum retries),
return initial state untouched rather than last generated cascade. This
avoids exposing an elastic scattering event under any circumstances.
19 July 2011 Michael Kelsey (hadr-casc-V09-04-14)
--------------------------------------------------
- G4ChannelData: Add new ctor argument "initialState", to specify the
product of the hadrons (e.g., for KminusP, the value is "kmi*pro"). This
argument is used to find the elastic channel cross-sections to be
subtracted from tot[] to get inelastic[] (other two-body channels,
including the quasi-elastic charge exchange, are treated as inelastic).
- G4Cascade*Channel.cc: Add new ctor argument for all cross-section tables.
18 July 2011 Michael Kelsey (hadr-casc-V09-03-91) ***BRANCH TAG***
--------------------------------------------------
- G4LorentzConvertor.cc: Copy HEAD version, which includes protections for
::rotate() applied to at-rest system (i.e., z-axis ~ (0,0,0)), and
simplifies calculations to avoid similar errors elsewhere.
NOTE: Changes below not included in branch tag.
18 July 2011 Michael Kelsey (hadr-casc-V09-04-13)
--------------------------------------------------
- G4ChannelData: Add new "inelastic" array, filled in initialize() to the
sum of 3-body and higher multiplicity cross-sections.
- G4CascadeInterface.cc: Change an error message to not show "ApplyYourself"
- G4ElementaryParticleCollider.cc: Per V. Uzhinskiy, remove special
"mult==3" case from getMomModule2toMany(). Replace magic numbers in
switch blocks with particle-name enums.
1 July 2011 Michael Kelsey
---------------------------
- G4NucleiModel.hh/.cc, G4InuclPartice.hh, G4InuclElementaryParticle.hh:
Copy minor comment changes applied to 9.4-ref-06 and 9.5-beta to HEAD.
17 June 2011 Michael Kelsey
----------------------------
- G4NucleiModel.cc: Change "R_nucleon" (trailing effect nucleon radius) to
be adjustable parameter using G4NUCMODEL_RAD_TRAILING. Also apply radius
scaling factor to numerical value. This code should NOT be proposed for
builds until tested with thick-target models.
2 June 2011 Michael Kelsey (hadr-casc-V09-04-12)
-------------------------------------------------
- G4LorentzConvertor: Drop most "intermediate" kinematic parameters used in
rotate, in favor of somewhat more direct vector operations. Change test
for "degenerated" to use "small" rather than "small*small".
25 May 2011 Michael Kelsey (hadr-casc-V09-04-11)
-------------------------------------------------
- G4LorentzConvertor.cc: Add diagnostic messages in both ::rotate().
- G4NucleiModel.cc: Revert length scales to pre-V09-04-04 ("2.82" factor);
see 18 March 2011 notes below. Should undo visible-energy and angular
distribution effects seen in GEANT4 9.4-ref-04 testing.
19 May 2011 Michael Kelsey (hadr-casc-V09-04-10)
-------------------------------------------------
- G4CollisionOutput.cc: Drop unused "p2" from selectPairToTune().
- G4NucleiModel.cc: Use computed value "rho" instead of recomputing twice.
- G4CascadeInterface: Add support for capturing random-engine state to user
file (specified with environment variable G4CASCADE_RANDOM_FILE) at each
ApplyYourself() or Propagate() invocation. This will allow (hopefully!)
easier reproduction of crashes in complex applications.
3 May 2011 Michael Kelsey
--------------------------
- G4LorentzConvertor.cc: Add a couple of diagnostic messages to ::rotate().
27 April 2011 Michael Kelsey (hadr-casc-V09-04-09)
--------------------------------------------------
- G4InuclNuclei.cc: Remove preface about "non-standard PDGencoding," since
particles-V09-04-01 has removed the corresponding warning messages.
15 April 2011 Michael Kelsey
----------------------------
- G4ParticleLargerEkin.hh, G4ParticleLargerBeta.hh: Add interfaces to do
sorting of G4CascadParticles, needed for initial setup of ::Propagate().
- G4IntraNucleiCascader.cc: In ::copySecondaries(), sort list by kinetic
energy.
13 April 2011 Michael Kelsey (hadr-casc-V09-04-08, hadr-casc-V09-03-88)
-----------------------------------------------------------------------
- G4ElementaryParticleCollider.cc: For 2-body scattering, adjust test to term1
to avoid divide-by-zero errors (see 19 Jan 2011, tag -00).
13 April 2011 Michael Kelsey
----------------------------
- G4NucleiModel: Encapsulate trailing effect test in ::passTrailing().
13 April 2011 Michael Kelsey (hadr-casc-V09-04-07)
--------------------------------------------------
Deploying operational rescattering. This code requires modifications to
G4VIntraNuclearTransportModel.hh and G4TheoFSGenerator.hh which are included
in the geant4-09-04-ref-03 build.
NOTE: In testing, some input cascades lead to nuclei with excessive
excitation energy; this code should not be used in production.
- G4CascadeInterface.cc: Add construction of bullet from cached copy of
original projectile, saved by G4TheoFSGenerator.
- G4InuclCollider.cc: Adjust diagnostic messages in ::rescatter() to match
those in ::collide().
- G4IntraNucleiCascader.cc: Reduce number of retries from 1000 to 100.
28 March 2011 Michael Kelsey
----------------------------
- G4CascadeCheckBalance.hh: Add non-limit ctor and explicit limit setting.
- G4CascadeInterface.cc: Set internal E/p limits to match Gunter's below
(currently 5% and 10 MeV, want to make them tighter).
28 March 2011 Gunter Folger
----------------------------
- Set up for E/p checking by G4HadronicProcess in ctor of G4CascadeInterface.
24 March 2011 Michael Kelsey
----------------------------
- G4NucleiModel: Add optional argument to reset() with list of collision
points, for copying cascade state when rescattering.
- G4IntraNucleiCascader: Add list of hit-nucleon locations, filled by
copyWoundedNucleus() for initialization of G4NucleiModel (above).
24 March 2011 Dennis Wright (hadr-casc-V09-04-06)
-------------------------------------------------
- G4NucleiModel - add trailing effect
23 March 2011 Michael Kelsey
----------------------------
- G4CollisionOutput.hh: Add non-const accessors for lists.
21 March 2011 Michael Kelsey (hadr-casc-V09-04-03-01, -V09-04-05)
--------------------------------------------------
Fixes for compiler warnings (and one error on Windows). The -03-01 tag
backs out change to G4NucleiModel.cc in -04 tag, which will be restored to
the HEAD.
- G4InuclElementaryParticle: Make getStrangeness() and getStrangeness(type)
both return G4int.
- G4CascadeColliderBase.hh: Hide names of arguments to rescatter().
- G4NucleiModel.cc: Replace strtof() with strtod().
18 March 2011 Michael Kelsey (hadr-casc-V09-04-04)
--------------------------------------------------
- G4NucleiModel.cc: Change internal length scale to use femtometers
directly (instead of apparent 2.8197 fm), and internal cross-section scale
to use fm^2 (instead of millibarns).
17 March 2011 Michael Kelsey (hadr-casc-V09-04-03)
--------------------------------------------------
Tag all revisions for deployment in next reference build.
1) Implement most of rescattering capability (G4CascadeInterface::Propagate
and dependent code). Substantial factoring of ::collide() functions to
allow functional reuse by ::rescatter(). Not operational without code
to capture and use primary projectile.
2) Simplify cascade test-and-repeat loops; do four-momentum balancing with
nuclear fragment, now used exclusively as G4Fragment, at end of cascade,
not after de-excitation.
16 March 2011 Michael Kelsey
----------------------------
More improvements to rescattering code. Not yet functional without code to
construct "bullet" from original projectile.
- G4CascadeInterface: Simplify target-construction functions by moving
active code to one with simple (A,Z) arguments.
- G4CollisionOutput.cc: Add reset() at start of trivialize().
- G4IntraNucleiCascader: Add functions to convert single G4KineticTrack to
G4CascadParticle (move out of preloadCascade()), and to decay G4KT
hadronic resonances in situ. Improve diagnostic messages.
- G4InuclElementaryParticle.cc: Move K0S/K0L "mixing" to K0/K0bar into type().
11 March 2011 Michael Kelsey
----------------------------
- G4CollisionOutput: Include G4Fragment as part of final state for
setOnShell() (including computing totalOutputMomentum). Note that the
four-momentum in G4Fragment is in GEANT4 units (MeV), not Bertini units!
- G4IntraNucleiCascader.cc: Reorganize post-cascade handling to do
setOnShell() check for all cases, allowing G4Fragment to be adjusted.
This should leave final state fully balanced before InuclCollider sees it.
- G4InuclCollider.cc: Simplify de-excitation handling (fragment test is in
deexcite() function). Suppress momentum-conservation check on de-excitation
unless G4CASCADE_CHECK_ECONS compiler flag was used, as all functions have
been confirmed to conserve four-momentum.
8 March 2011 Michael Kelsey
---------------------------
- G4InuclCollider: Move post-cascade (deexcitation) block out of collide()
to separate function. Pass G4Fragment instead of G4InuclNuclei.
- G4IntraNucleiCascader.cc: Don't put recoil "nucleus" onto output list.
- G4CollisionOutput.cc, G4InuclNuclei.cc: Follow additions to G4Fragment
interface to store and access charged and neutral holes separately.
4 March 2011 Michael Kelsey (kelsey-20110304)
---------------------------------------------
Continue development of rescattering infrastructure. All executable
functionality should be in place, BUT no "bullet" is available yet, so code
(especially conservation checks) will crash with segmentation fault.
- G4CascadeColliderBase.hh: Add ::rescatter() interface with null body, to
enforce common interface in all (both) affected colliders.
- G4CascadeInterface: Move conversion functions used by ::Propagate() from
here down to G4IntraNucleiCascader. Just pass input arguments through.
Convert cascade results to G4ReactionProducts for ::Propagate() output.
- G4IntraNucleiCascader: Move conversion functions used by ::Propagate() to
here from G4CascadeInterface. Replace ::rescatter() interface to take
arguments from ::Propagate and do conversion locally. Remove unnecesary
"itry" arguments from cascade functions.
- G4InuclCollider: Follow ::rescatter() interface change above, passing
arguments from G4CascadeInterface through to G4IntraNucleiCascader.
- G4NucleiModel.hh: Add optional arguments to reset() to force values of
neutron and proton counts (default behaviour is unchanged).
3 March 2011 Michael Kelsey
---------------------------
- G4CascadeInterface: Change name of "bulletList" to "inputFragments".
- G4CascadeRecoilMaker.cc: Add diagnostic message to ::wholeEvent().
- G4IntraNucleiCascader: Add function to copy input cascade particles to
local list for propagation, move clearing functions to separate action.
- G4NucleiModel.hh: Add accessors for radius (including zone radii),
mapping radial position to zone index, and converting radius units.
- G4NucleiModel.cc: Add a couple of FIXME messages about binding_energies[].
3 March 2011 Michael Kelsey (kelsey-20110303)
---------------------------------------------
- G4CascadeDeexcitation.cc: Don't do conservation check at end of process.
- G4CascadeInterface.cc: Rearrange messages for G4CASCADE_DEBUG_INTERFACE.
- G4CascadeOutput.cc: Fix diagnostic message reporting initial momentum.
- G4IntraNucleiCascader.cc: Move model->printModel() call to G4NucleiModel.
- G4NucleiModel.cc: Put printModel() call at end of generateModel().
- G4CascadeRecoilMaker.cc: Add diagnostics to goodNucleus().
- G4CollisionOutput.cc: Move ini_mom calculation to fix diagnostic output.
28 February 2011 Michael Kelsey (kelsey-20110228)
-------------------------------------------------
Continue infrastructure development for rescattering.
- G4CascadeInterface: New ::copyPreviousCascade() to transfer rescattering
into to Bertini particles, along with data buffers for the converted list.
New ::makeReactionProduct() for conversion of internal to external
hadronic-tracks. New ::makeCascadParticle() for conversion of pre-cascade
G4KineticTrack to Bertini type.
- G4InuclCollider.cc: Set verbosity when de-excitation module is changed.
25 February 2011 Michael Kelsey (kelsey-20110225b)
--------------------------------------------------
Develop infrastructure to support using Bertini as a "rescattering" model
for the output of the FTF simulation.
- G4CascadeColliderBase: Add ::setVerboseLevel() function which passes
verbosity through to G4CheckBalance data member.
- G4CascadeInterface: Add ::createTarget(G4V3DNucleus*). Move setVerboseLevel
implementation to .cc file, and propagate verbosity to member objects.
Move conservation checking to separate function. Begin to populate Propagate
function.
- G4IntraNucleiCascader: Split ::collide() into separate utility functions
to handle different stages of cascade process (initialization, cascade
development, final state). Add new ::rescatter() function which takes a
list of pre-existing secondaries as input to "seed" the processing. Add
setVerboseLevel implementation, and propagate verbosity to member objects.
- G4InuclCollider: Add ::rescatter() function which calls through to
G4IntraNucleiCascader(), and setVerboseLevel implementation.
NOTE: G4InuclCollider above was accidentally commited to kelsey-20110225a
25 February 2011 Michael Kelsey (kelsey-20110225a)
--------------------------------------------------
Infrastructure improvements to support modifying output particle lists
- G4CollisionOutput: Add ::removeXXX() interfaces to take particles off of
lists.
- G4InuclParticle.hh, G4InuclNuclei.hh, G4ExitonConfiguration.hh: Add
equality and inequality operators. NOTE: Sorting (operator<) NOT SUPPORTED.
23 February 2011 Michael Kelsey (hadr-casc-V09-04-02)
-----------------------------------------------------
- G4NucleiModel: Bring changes for parametrizing "rescaled" nuclear model
parameters from orphaned CVS tag kelsey-20101020b into HEAD of SVN. The
scale factors are set specifically to reproduce the existing production
code, but will be adjusted to give the model "natural units" (fm lengths
and millibarn cross sections). Use environment variables to set scale
factors:
G4NUCMODEL_RAD_SCALE (3.3836/1.2 ~ 2.8197)
Internal length scale (conversion from femtometers). All of the
lengths in G4NucleiModel are larger by this factor than one would
expected from the literature. To do all of the model parameter
calculations in fm, this scale factor should be set to 1.
G4NUCMODEL_RAD_2PAR (not defined)
The current model computes the nuclear radius as a one-parameter
function of mass: 1.2*cbrt(A) (multiplied by the length scale
above). A better parametrization is 1.16*cbrt(A) - 1.3456/cbrt(A);
setting this environment variable chooses that parametrization.
G4NUCMODEL_RAD_SMALL (8.0/G4NUCMODEL_RAD_SCALE)
For nuclei below A=5 (alphas, tritons, etc.), instead of the
mass-dependent scaling, a constant radius is used. In the current
model, a value of 8.0 (corresponding to 2.83 fm) is set; published
data suggests 1.992 fm instead.
G4NUCMODEL_RAD_ALPHA (0.70)
This scale factor multiplies G4NUCMODEL_RAD_SMALL to account for the
anomalous binding energy of alphas compared to nearby light nuclei.
Published data suggests a value of 0.84 instead.
G4NUCMODEL_FERMI_SCALE (0.685)
This factor converts from the length scale (cbrt(volume)) to the
Fermi momentum for each nuclear species. Published data suggests a
value of 0.61 GeV/fm instead.
G4NUCMODEL_XSEC_SCALE (1.)
Scaling factors for total cross-sections. The current code has all
the cross sections in millbarns. If we are able to migrate to a
length scale in femtometers, this factor will change to 10. to
convert mb to fm^2.
14 February 2011 Michael Kelsey (hadr-casc-V09-04-01)
-----------------------------------------------------
- G4InuclParticle: Continue migration to enumerator Model. Replace
previous enum word "default" with "DefaultModel", add "PreCompound".
- G4InuclNuclei, G4InuclElementaryParticle: Follow G4InuclParticle::Model
migration, and drop use of "generation."
- G4CascadeRecoilMaker: Replace integer model with G4InuclParticle::Model.
- G4BigBanger.cc, G4CollisionOutput.cc, G4ElementaryParticleCollider.cc,
G4EqulibriumEvaporator.cc, G4Fissioner.cc, G4NonEquilibriumEvaporator.cc,
G4PreCompoundDeexcitation.cc: Replace integer model code with
G4InuclParticle::Model enumerator values.
31 January 2011 Michael Kelsey
------------------------------
- G4IntraNucleiCascader.cc: Move "momentum_in" calculation inside verbosity.
- G4InuclElementaryParticle.hh: Change getStrangeness() to return int, use
as pseudo-bool in hyperon() implementation. Drop local "generation" data
member, not used anywhere.
- G4InuclParticle.hh: Change "modelId" to enumerated type. Will require
numerous changes throughout code.
19 January 2011 Michael Kelsey (hadr-casc-V09-04-00)
----------------------------------------------------
- G4ElementaryParticleCollider.cc: In sampleCMcosFor2to2(), protect against
divide-by-zero by testing for term1==0. before other computations.
Addresses ~10^-7 FPE rate reported by A. Dotti.
16 January 2011 Michael Kelsey
------------------------------
- G4InuclParticleNames.hh: Add enumerator values for some light ions as
"elementary particles," and names for antibaryons and light antinuclei.
These will support upcoming developments, but are not currently used.
- G4InuclElementaryParticle.hh: Add antinucleon() and antibaryon() flags
(the latter will cover the light-ion cases).
- G4InuclElementaryParticle.cc: Add switch cases for new particles above.
24 November 2010 Michael Kelsey (hadr-casc-V09-03-87)
-----------------------------------------------------
- G4InuclCollider.cc: Delete local "zbullet" before exiting. Fixes memory
leak reported for 9.4 cand-01.
19 November 2010 Michael Kelsey (hadr-casc-V09-03-86)
-----------------------------------------------------
- G4NucleiModel.cc: Put messages related to negative-path-length and
zero-interaction-partners behind verbosity flag.
29 October 2010 Michael Kelsey (hadr-casc-V09-03-85)
----------------------------------------------------
- G4NucleiModel: Bring tagged version kelsey-20101020 (refactoring) to HEAD
and tag for 9.4 release. This is the last substantive modification to be
included; validated by direct |diff|ing of output vs. V09-03-84 code.
22 October 2010 Michael Kelsey (hadr-casc-V09-03-84)
----------------------------------------------------
- G4WatcherGun.cc: Change first numeric argument to G4NuclWatcher to int.
NOTE: Only this change is include in tag.
20 October 2010 Michael Kelsey (kelsey-20101020b)
-------------------------------------------------
- G4NucleiModel: Add scaling factors ("units") for nuclear radii and
cross-sections, in order to adapt calculations to the literature.
20 October 2010 Michael Kelsey (kelsey-20101020a)
-------------------------------------------------
- G4NucleiModel: Re-activate changes in worthToPropagate() to use existing
nuclear potential values for kaons and hyperons to decide on trapping.
20 October 2010 Michael Kelsey (kelsey-20101020)
------------------------------------------------
- G4NucleiModel: Clean up some bugs in refactoring generateModel(). Back
out changes (28 Sep) in worthToPropagate() in order to compare refactored
to production code.
20 October 2010 Michael Kelsey (hadr-casc-V09-03-83)
----------------------------------------------------
- G4CascadParticle.cc: Remove debugging output left in by accident.
NOTE: Tag does not include reorganization of G4NucleiModel (5 Oct 2010)
19 October 2010 Michael Kelsey
------------------------------
G4FissionStore, G4FissionConfiguration: Undo migration to integer A and Z.
19 October 2010 Michael Kelsey
------------------------------
Clean up CoVerity software analysis reports (three are ignored from obsolete
code):
G4Analyser.cc
G4CascadeCheckBalance.cc
G4CascadeInterpolator.icc
G4CascadeSampler.icc
G4CollisionOutput.cc
G4ElementaryParticleCollider.cc
G4InuclCollider.cc
G4NuclWatcher.cc
G4NucleiModel.hh,cc
G4RegionModel.cc
14 October 2010 Michael Kelsey
------------------------------
- G4NucleiModel.cc: Fix misspelled "G4doulbe" -> G4double.
Pick up several missed bits of the "integer A and Z migration," mostly in
test and diagnostic code:
G4Analyser.hh,cc
G4FissionConfiguration.hh
G4FissionStore.hh,cc
G4NuclWatcher.hh,cc
14 October 2010 Michael Kelsey (hadr-casc-V09-03-82)
----------------------------------------------------
- G4CascadParticle.cc: Add protection in getPathToTheNextZone() so that d2
is always computed non-negative. Avoids 10^-5 FPEs.
05 October 2010 Michael Kelsey
------------------------------
- G4NucleiModel: Major reorganization of generateModel() code.
1) Rename integration functions from "volNumInt[1]" to "zoneIntegralxxx"
with "xxx" = "WoodsSaxon" or "Gaussian".
2) Move hardwired constants out to static data members, give clear names.
3) Split function into separate pieces to set binding energies, zone
radii, volume/density values, and potential heights.
4) Within new functions, simplify if-cascades where possible, eliminate
duplicated code.
5) Move std::vector<> buffers out to data members.
Also, modify worthToPropagate() to use non-nucleon potential heights to
terminate propagation. Previously, non-nucleons could never fail, as the
"getFermiKinetic" always returned zero.
28 September 2010 Michael Kelsey (hadr-casc-V09-03-81)
------------------------------------------------------
- G4BigBanger: Missed some integer A/Z migrations, which caused a bus error
in test47.
26 September 2010 Michael Kelsey (hadr-casc-V09-03-80)
------------------------------------------------------
- G4VCascadeDeexcitation.hh: NEW abstract base class for post-cascade
processing. Some common activities will be implemented here from the two
actual modules.
- G4CascadeDeexcitation, G4PreCompoundDeexcitation: Use new base class
above, reorganize code in collide() to use new deExcite(G4Fragment*) where
appropriate.
- G4InuclCascader.hh: Reference new base class for de-excitation modules.
25 September 2010 Michael Kelsey
--------------------------------
- G4CascadeColliderBase: Add explosion(G4Fragment*) and explosion(A,Z,Eexc).
Move implementation to latter, and write others as call-throughs. Add
Z==0 condition for explosion, regardless of A.
- G4EquilibriumEvaporator.hh: Remove explosion(G4InuclNuclei*), as
unnecessary. Existing explosion(A,Z,E) now overrides base class.
- G4CollisionOutput: Add function to process G4ReactionProducts from
PreCompound.
- G4PreCompoundDeexcitation.cc: Move G4ReactionProducts loop to
G4CollisionOutput.
24 September 2010 Michael Kelsey
--------------------------------
- G4IntraNucleiCascader.cc: Minor shuffle of post-cascade recoil checking,
in preparation for moving fragment construction and processing away.
- G4CollisionOutput.cc: Replace names "TargetFragment*" and "NucleiFragment*"
with "OutgoingNuclei" and "OutgoingNucleus" for consistency with
"OutgoingParticles" names. This affects the following source files, all
of which are modified to match (using |sed|):
cascade/include/G4Analyser.hh
cascade/include/G4CollisionOutput.hh
cascade/src/G4Analyser.cc
cascade/src/G4CascadeCheckBalance.cc
cascade/src/G4CascadeDeexcitation.cc
cascade/src/G4CascadeInterface.cc
cascade/src/G4CollisionOutput.cc
cascade/src/G4EquilibriumEvaporator.cc
cascade/src/G4Fissioner.cc
cascade/src/G4IntraNucleiCascader.cc
cascade/src/G4InuclCollider.cc
cascade/src/G4InuclEvaporation.cc
cascade/src/G4NonEquilibriumEvaporator.cc
cascade/src/G4PreCompoundDeexcitation.cc
- G4CollisionOutput: Add new G4Fragment data member, with get() and add()
accessors. This fragment is *not* used by setOnShell() or by any of the
event-total calculations. It will be filled by G4IntraNucleiCascader for
use by de-excitation modules. Include G4Fragment in diagnostic output if
not empty.
- G4CascadeRecoilMaker.cc: Remove G4Fragment::SetExcitationEnergy() call.
- G4InuclNuclei: Add new constructor to create from G4Fragment input, and
new makeG4Fragment() to spit out a G4Fragment. Also provide a casting
operator for the latter.
24 September 2010 Michael Kelsey (hadr-casc-V09-03-79)
------------------------------------------------------
Fix numerous compilation warnings on Linux (not seen on MacOSX) left over
from migration to integer A and Z (-73 tag).
G4BigBanger.cc
G4CascadeCheckBalance.hh
G4CascadeColliderBase.cc
G4CascadeRecoilMaker.cc
G4EquilibriumEvaporator.hh,cc
G4ExitonConfiguration.hh
G4Fissioner.cc
G4InuclCollider.cc
G4NonEquilibriumEvaporator.cc
G4NucleiModel.cc
- G4PreCompoundDeexcitation.cc: Drop "G4int" casts as no longer required.
23 September 2010 Michael Kelsey (hadr-casc-V09-03-78)
------------------------------------------------------
- G4CascadeInterface, G4InuclCollider: change user selection function name
to usePreCompoundDeexcitation(), per Julia Yarba.
- G4PreCompoundCascadeInterface.hh,.cc, G4PreCompountInuclCollider.hh,.cc:
REMOVE THESE CLASSES. These were copied and modified versions of the
standard versions, in order to test the new pre-compound de-excitation.
That has been integrated with runtime flags, so the parallel versions are
not required.
23 September 2010 Michael Kelsey
--------------------------------
- G4InuclElementaryParticle.cc: Drop warning message when converting
G4ParticleDefinition to type code.
- G4CascadeInterface: Add functions for user selection of which
post-cascade module to use for de-excitation of the residual nucleus.
These call through to the equivalent G4InuclCollider functions.
- G4InuclCollider: Add functions for user selection of which
post-cascade module to use for de-excitation of the residual nucleus.
These delete and re-instantiate the appropriate de-excitation "collider".
- G4PreCompoundDeexcitation: Remove convertFragment() function, remove
pass-by-value std::vector<> from getDeExcitedFragments() (use data member
instead). Clean up some obsolete code usage.
- G4CascadeRecoilMaker: Change fragment-making interface:
makeRecoilNuclei() now returns G4InuclNuclei* for standard Bertini colliders.
makeRecoilFragment() returns G4Fragment* for external PreCompound models.
addExcitonConfiguration() sets local copy of excitons, needed in order to
call the individual G4Fragment->Setxxx() functions.
- G4IntraNucleiCascader.cc: Follow renaming RecoilMaker::makeRecoilNuclei(),
use new addExcitonConfiguration().
- G4CascadeRecoilMaker: Change fragment-making interface:
makeRecoilNuclei() now returns G4InuclNuclei*.
makeRecoilFragment() returns G4Fragment*.
addExcitonConfiguration() sets local copy of excitons, needed in order to
call the individual G4Fragment->Setxxx() functions.
- G4IntraNucleiCascader.cc: Follow renaming RecoilMaker::makeRecoilNuclei(),
use new addExcitonConfiguration().
22 September 2010 Michael Kelsey
--------------------------------
- G4CascadeMomentum.hh: This should have been removed from the package long
ago. Apologies for the oversight.
22 September 2010 Julia Yarba
-----------------------------
Added 1st prototype of interface between Bartini cascade and PreCompound model
(post-cascade de-excitation).
Changes only to:
/geant4/source/processes/hadronic/models/cascade/cascade
New developments are those G4PreCompound* classes; the GNUmakefile adapted to
include necessary links.
The PreComp wrapper is G4PreCompundDeexcitation class.
The logic, loops, conditions, etc., in the event processing are the same as in
the "native" Bertini code. I actually copied it over from G4CascadeInterface,
and started from there.
However, there're a few technical changes that I'd like to mention.
1. G4PreCompoundInterface inherits directly from G4HadronicInteraction.
I felt that we'd not need G4VIntra..., because its only advantage is a pointer
(and related access methods) to G4VPreCompoundModel.
This has now moved to the de-excitation wrapper.
2. In the Collider itself, I've made the data member to be
G4CascadeColliderBase* theDeexcitation
This way, it can be transparently set to the native one or the PreComp one
(both inherit from G4CascadeColliderBase).
3. There's a setDeExcitation(...) methond in the collider, and also in the interface
(which will pass it down to the collider).
19 September 2010 Michael Kelsey (hadr-casc-V09-03-77)
------------------------------------------------------
- G4CascadeInterface.cc: Bug fix to logic in retryInelasticNucleus()
17 September 2010 Michael Kelsey (hadr-casc-V09-03-76)
------------------------------------------------------
- G4CascadeInterface: Add support to pass nucleus projectiles into
collider. Not tested or guaranteed to work, but G4IntraNucleiCascader is
supposed to deal with them.
16 September 2010 Michael Kelsey
--------------------------------
- G4CascadeInterface: Extensive reorganization, moving most
functionality out of ApplyYourself and into small member functions.
Complicated end-of-loop conditions encapsulated. Data members made into
pointers to hide dependences from outside world.
16 September 2010 Michael Kelsey (hadr-casc-V09-03-75)
------------------------------------------------------
- G4CascadeInterface.cc: Add parentheses in end-of-while block to fix
compilation warning in GCC 4.3.
- G4IntraNucleiCascader.cc: In decayTrappedParticle(), check for photon
daughters and put them directly onto output list.
16 September 2010 Michael Kelsey
--------------------------------
- G4CascadParticle.hh: Make getGeneration() const.
- G4CascadeDeexcitation.hh: Fix compiler warning about order of data members.
- G4IntraNucleiCascader: Intercept hyperons which are "trapped" in nuclear
potential, and decay them immediately to produce usable secondaries. This
resolves problem with sub-MeV final-state hyperons (reported by A. Dotti),
but is not entire correct. Properly, the hyperon should be incorporated
into a hypernucleus fragment.
- G4InuclElementaryParticle.hh: Add hyperon() identification function, and
constructor to take G4DynamicParticle directly.
- G4InuclParticle.hh, G4InuclNuclei.hh: Add constructor to take
G4DynamicParticle directly.
15 September 2010 Michael Kelsey (hadr-casc-V09-03-74)
------------------------------------------------------
- G4CascadeDeexcitation: NEW collider to handle post-cascade processing of
nuclear fragment. Encapsulates BigBanger and Evaporators. Eventually
will have alternative (configurable or #ifdef) implementation using G4
external "pre-compound" models instead of Bertini factories.
- G4InuclCollider: Remove post-cascade colliders (BigBanger, Evaporators),
replace with new G4CascadeDeexcitation.
- G4LorentzConverter: Move construtor implementations to .cc file, and make
sure all constructors have initializers for all data members.
14 September 2010 Michael Kelsey (hadr-casc-V09-03-73)
------------------------------------------------------
Migrate to integer A and Z values for nuclear configurations. Includes both
explicit arguments for G4InuclNuclei, and function arguments, computational
parameters involved in nuclear configurations, breakup, etc.
G4CascadeCheckBalance.cc
G4CascadeInterface.cc
G4CascadeRecoilMaker.hh
G4Fissioner.hh,cc
G4InuclEvaporation.cc
G4InuclNuclei.hh,cc
G4InuclSpecialFunctions.hh
G4NonEquilibriumEvaporator.hh,cc
G4NucleiModel.hh,cc
G4PreCompoundCascadeInterface.cc
bindingEnergy.cc
bindingEnergyAsymptotic.cc
nuclearLevelDensity.cc
paraMaker.cc
- G4InuclSpecialFunctions.hh: Eliminate bindingEnergy functions which are
no longer used, along with their .cc files:
bindingEnergyKummel
bindingEnergyExact
Migration validated using 100 events (20 GeV pi+ on lead) with verbose==4.
Entire log files (9.6M lines, 433 MB) identical before and after migration.
13 September 2010 Michael Kelsey
--------------------------------
- G4InuclElementaryParticle: Move printParticle() implementation to .cc,
and add printing of particle name to output.
- G4InuclNuclei.cc: Move base-class printing to first line of output, to
match G4InuclEP.
10 September 2010 Michael Kelsey (hadr-casc-V09-03-72)
------------------------------------------------------
- G4CascadeRecoilMaker: Add new goodNucleus() function with functionality
from G4IntraNucleiCascader::goodCase(). Add parameter to set "rounding
tolerance" for small/negative mass differences. Drop getRecoilFragment()
in favor of user calling makeRecoilFragment() directly (instead of doing
it collide()), which returns a non-const pointer.
- G4IntraNucleiCascader: Remove previously introduced getResidualMass() and
makeResidualFragment() functions, along with G4InuclNuclei object.
Replace with new RecoilMaker utility. Move goodCase() to RecoilMaker, and
begin to simplify end-of-cascade processing.
- G4ExitonConfiguration.hh: Add function to reset values to zero.
- G4InuclNuclei: Add function to zero out exciton configuration, and use
it in fill() functions.
9 September 2010 Michael Kelsey
-------------------------------
- G4CascadeCheckBalance: Add new collide() interface to take lists of both
G4InuclElementaryParticles and G4CascadParticles; supports use by
G4IntraNucleiCascader and G4CascadeRecoilMaker.
- G4CascadeRecoilMaker: NEW pseudo-Collider class to compute the nuclear
recoil kinematics of a cascade, either in process or completed. To be
used by G4IntraNucleiCascader; uses G4CascadeCheckBalance to do work.
6 September 2010 Michael Kelsey (hadr-casc-V09-03-71)
-----------------------------------------------------
- G4NucleiModel: Add protections in generateInteractionPartners() so that
nucleon and quasideuteron interactions are only selected if there are
"enough" nucleons of the necessary type still available (xxxNumberCurrent).
- G4InuclNuclei: Add fill() functions which overwrite the entire particle
structure, with same argument lists as constructors. Will be used mainly
by G4IntraNucleiCascader::makeResidualFragment().
- G4IntraNucleiCascader: Hide non-physical nucleus message behind verbose
flag. Add function and data member to build recoil nucleus (fragment) at
end of every iteration; will eventually replace functionality of
getResidualMass().
2 September 2010 Michael Kelsey (hadr-casc-V09-03-70)
-----------------------------------------------------
- G4NucleiModel.cc: Restore hadr-casc-V09-03-68 revision 1.71, and remove
the two resize(3) actions.
NOTE: The exercise below has (finally) resolve the cross-section
discrepancy reported by Sunanda Banerjee back in July. It turns out that my
use of "resize(3)" to pre-allocate the qdeutron and acsec buffers on each
interaction was incorrect. This doesn't just reserve memory, it fills the
vectors with three elements, so that subsequent push_back()'s fill [3], [4],
etc.
2 September 2010 Michael Kelsey
-------------------------------
- G4NucleiModel.cc: Reverted to hadr-casc-V09-03-38 revision 1.45, and
interface changes incorporated. See NOTE below from 28 July 2010.
Cross-section changes have not been resolved or validated. Since -38
revision has better data/MC matching (ratio near 1), it is restored as the
baseline version, and changes will be re-done incrementally.
Each increment after (0) is tagged "kelsey-20100902x", x=a,b,c,d etc.
0) Implement new ctor and generateModel() calls
Make cross-section tables statically initialized
Include absorptionCrossSection definition
1) Use lookup tables for cross-sections, and new interpolator
Change CHC_CHECK to G4CASCADE_DEBUG_CHARGE
2) Use this package's bindingEnergy() function
3) Update diagnostic messages and verbosity levels;
Add missing initializers to all constructors;
Use data-member buffer for G4CollisionOutput
4) Use generateWithRandomAngles() everywhere appropriate;
Collapse if-cascades to use if-return where possible
5) Make generateModel() re-usable with data-member buffers
6) Energy-momentum conservation checking;
Implement generateNucleonMomentum;
Remove extraneous semicolons and blank lines
7) Use local variables in passFermi();
Fix some minor LorentzVector calculations;
Use generateNucleonMomentum() for quasi-deuterons
8) Use data-member buffers for quasideuterons, coords, mom.
9) Use enum labels for quasideuteron codes
10) Restore Dennis' improved potential (6-zone) calculations
4 August 2010 Michael Kelsey (hadr-casc-V09-03-69)
--------------------------------------------------
- G4CascadeData: Add name data member and optional ctor argument, use
when printing tables.
- G4CascadeFunctions.icc: Pretty-up printing output using name string.
- G4Cascade*Channel.cc: Add name string to data() ctor, use central part of
class name, e.g., "PiMinusP" for G4CascadePiMinusPChannel.
- G4ElementaryParticleCollider.cc: Add printing of all final-state tables,
one time only, protected by G4CASCADE_DEBUG_SAMPLER.
- GNUmakefile: Add G4CASCADE_DEBUG_SAMPLER preprocessor flag.
3 August 2010 Michael Kelsey (hadr-casc-V09-03-68)
--------------------------------------------------
- G4CascadeData.hh: Add print() and printXsec() functions to dump tables.
- G4CascadeData.icc: Move implementations out of G4CascadeData.hh file.
- G4CascadeFunctions.hh,icc: Add printTable() to dump tables.
- G4CascadeInterpolator.hh,icc: Add printBins() to dump energy bin edges.
- G4CascadeSampler.hh,icc: Add print() to call through to interpolator.
NOTE: This should be the last set of functional changes for a while.
Sunanda Bannerjee reported substantial changes in validation plots for the
Bertini cascade between 4.9.3-ref-05 (hadr-casc-V09-03-23-01) and
4.9.3-ref-06/4.9.4-beta-01 (hadr-casc-V09-03-43).
28 July 2010 Michael Kelsey (hadr-casc-V09-03-67)
-------------------------------------------------
- G4NucleiModel.cc: Set deuteron arrays to fixed length (3). Add A/Z
values to generateModel diagnostic message.
- G4EquilibriumEvaporator.cc: Change some fixed length std::vector<> to
simple C arrays.
- G4Fissioner.cc: Move G4FissionStore to class data member for reuse.
- G4FissionStore: Add ::clear() function to support reuse, move addConfig()
implementation to .cc file.
- G4IntraNucleiCascader: Move G4NucleiModel to class-level data member
(pointer) so it can be reused across collisions.
26 July 2010 Michael Kelsey
---------------------------
- G4Analyzer.cc: Use const-refs for particle lists.
- G4BigBanger, G4ElementaryParticleCollider: Move std::vector<> buffers to
.hh file to allow reuse.
- G4NucleiModel.cc: Simplify buffers used in generateModel() to reduce
G4double allocations.
23 July 2010 Michael Kelsey (hadr-casc-V09-03-66)
-------------------------------------------------
- G4CascadeInterface: Move G4CollisionOutput to .hh file for reuse between
events.
- G4IntraNucleiCascader: Move buffers for cascade output to .hh file, so
they can be reused between events.
- G4NucleiModel: Move G4CollisionOutput to .hh file for reuse; use
references for bullet and target args to G4EPCollider.
21 July 2010 Michael Kelsey (hadr-casc-V09-03-65)
-------------------------------------------------
- GNUmakefile: Add new G4CASCADE_CHECK_ECONS to turn off all of the
internal conservation checks (reduce std::vector<> memory churn!).
- G4CascadeColliderBase.cc: Use G4CASCADE_CHECK_ECONS to set the default
value of "doConservationChecks": true if defined, false if not defined.
This is done with #ifdef-else-endif block, NOT some fancy macro.
- G4CascadeInterface.cc: Use G4CASCADE_SKIP_ECONS to toggle reporting
violations before end of loop (don't need to call balance.okay() twice!).
- G4ElementaryParticleCollider.cc: Put verbosity check before call to
validateOutput() to avoid unnecessary vector manipulations.
- G4IntraNucleiCascader.cc: Set doConservationChecks = true
unconditionally; used to reject bad cascades.
- G4NucleiModel.cc: Use G4CASCADE_CHECK_ECONS to hide balance.collide().
20 July 2010 Michael Kelsey (hadr-casc-V09-03-64)
-------------------------------------------------
- G4CascadeColliderBase: Make G4CascadeCheckBalance a pointer member, move
ctor and dtor to .cc file. Change balance tolerances to 1 per mil and 1
MeV.
- G4InuclCollder: Make all colliders pointer members.
- G4IntraNucleiCascader: Make EPCollider a pointer member, and call
G4CollisionOutput::setOnShell() to balance energy-momentum for null fragments.
- G4InuclNuclei.cc: Preserve momentum magnitude when setting excitation
energy by setting mass and kinetic energy.
19 July 2010 Michael Kelsey (hadr-casc-V09-03-63)
-------------------------------------------------
- G4CascadeCheckBalance.cc: Change zero-tolerance to 10 keV (1e-5) from
1 keV (1e-6).
- G4CollisionOutput.hh: Fix capitalization of "numberOfOutgoingParticles".
- G4EquilibriumEvaporator.cc: Remove duplicate EEXS setting.
- G4InuclNuclei: Change implementation of setExitationEnergy() to adjust
mass while keeping momentum vector constant. Currently done with
"expensive" LorentzVector manipuation. Should be done by recomputing
kinetic energy given new mass value.
- G4NonEquilibriumEvaporator.cc: Modify particle-creation block to work as
G4EquilibriumEvaporator now does. Simplify some if-blocks.
16 July 2010 Michael Kelsey (hadr-casc-V09-03-62)
-------------------------------------------------
- G4CollisionOutput: Add interfaces to handle G4CascadParticles.
- G4IntraNucleiCascader: Eliminate local "inter_case" data member and
function. Use base class G4InteractionCase directly. Add functionality
to test for conservation and recoil before exiting "itry" loop, and redo
cascade if unbalanced recoil fragment.
- G4{PreCompound}InuclCollider.cc: Drop "setInteractionCase()" function.
15 July 2010 Michael Kelsey (hadr-casc-V09-03-61)
-------------------------------------------------
- G4CollisionOutput: New ::add() function to combine two objects. New
accessors to get total charge and baryon number.
- G4CascadeCheckBalance: Make tempOutput data member, for thread-safety,
rather than static variables. Use new G4CollisionOutput accessors.
- G4IntraNucleiCascader.cc: Move local output buffers outside while loop,
use std::vector<>::insert() for copying.
- G4InuclCollider.cc: Use new G4CollisionOutput::add() interface.
- G4NucleiModel.cc: Hide conservation checks behind verbose>2. Otherwise
log files get too big
15 July 2010 Michael Kelsey (hadr-casc-V09-03-60)
-------------------------------------------------
- G4CascadeCheckBalance: Add layer of protection in relativeX() (check
initial values) to avoid divide-by-zero errors. Add another interface to
accept list of G4CascadParticles, for use with G4NucleiModel. Add check
of momentum direction balance, not just magnitudes.
- G4IntraNucleiCascader.cc: Rearrange end-of-loop if-blocks to allow for
conservation checking prior to return. Add reporting of both too-low and
too-high residual energy (at verbose=2) for single-nucleon fragments.
- G4InuclCollider.cc: Remove re-named conservation checks, now all done by
colliders themselves.
- G4InuclParticle.hh: Add setKineticEnergy() function to simplify handling
of some kinematics.
- G4NucleiModel: Add G4InuclNuclei data member (created in generateModel()),
for use with conservation checks. Do check at end of generateParticleFate().
15 July 2010 Michael Kelsey (hadr-casc-V09-03-59)
-------------------------------------------------
- G4InuclNuclei: Use G4DynamicParticle::theDynamicalMass to carry around
excitation energy (== theDynamicalMass-thePDGMass). This allows
excitation to be changed on the fly, with all kinematics handled
correctly. It also allows ONLY the ground state nucleus to be created as
a G4Ions object (whether global or private), reducing the number of such
objects by a factor of thousands.
14 July 2010 Michael Kelsey (hadr-casc-V09-03-58)
-------------------------------------------------
- G4CollisionOutput.cc: For initial four-momentum adjustment, skip over
particles which would acquire negative energy after "correction."
- G4ElementaryParticleCollider.cc: Bug fix for two-body final states.
Kinematics should not require "rescaling." That was driven by states
which were kinematically forbidden, with m1+m2 > etot_scm (e.g., pi0 p ->
pi+ n with just 5 MeV kinetic energy). Now those states are caught and
rejected.
- G4CascadeInterface.cc, G4InuclCollider.cc: Improve diagnostics reporting
number of retries.
- G4EquilibriumEvaporator.cc: When computing residual excitation
(EEXS_new), original thrown energy, S, should be used, not reboosted
particle after recoil. Simplify evaporation kinematics to conserve
four-momentum automatically (PEX -= mom).
14 July 2010 Michael Kelsey (hadr-casc-V09-03-57)
-------------------------------------------------
- G4CascadeColliderBase: New subclass of G4VCascadeCollider, which takes
over all of its concrete functionality, and adds conservation checker
(G4CascadeCheckBalance) as data member. Wrapper functions and control
flag allow colliders to user it transparently.
- G4VCascadeCollider: Move concrete functionality to new base class.
- All colliders: Change base class to new G4CascadeColliderBase. Remove
local copies of conservation-checker, using new base function instead.
cascade/include/G4BigBanger.hh
cascade/include/G4ElementaryParticleCollider.hh
cascade/include/G4EquilibriumEvaporator.hh
cascade/include/G4EvaporationInuclCollider.hh
cascade/include/G4Fissioner.hh
cascade/include/G4IntraNucleiCascader.hh
cascade/include/G4InuclCollider.hh
cascade/include/G4NonEquilibriumEvaporator.hh
cascade/include/G4PreCompoundInuclCollider.hh
cascade/src/G4BigBanger.cc
cascade/src/G4ElementaryParticleCollider.cc
cascade/src/G4EquilibriumEvaporator.cc
cascade/src/G4EvaporationInuclCollider.cc
cascade/src/G4Fissioner.cc
cascade/src/G4IntraNucleiCascader.cc
cascade/src/G4InuclCollider.cc
cascade/src/G4NonEquilibriumEvaporator.cc
cascade/src/G4PreCompoundInuclCollider.cc
- G4EquilibriumEvaporator: Use new functionality (above) to turn off
conservation checks when evaporating fission products.
- G4CascadeInterface.cc: Report number of retries in verbose messages.
- G4IntraNucleiCascader.cc: Remove sanity check on afin/zfin vs. model.
13 July 2010 Michael Kelsey (hadr-casc-V09-03-56)
-------------------------------------------------
- G4CascadeCheckBalance: Add zero protection (needed for momentum ratio)
using a static tolerance parameter.
- G4EquilibriumEvaporator.cc: Add dumping of G4CollisionOutput before exit,
some fixes for "PEX" adjustments as EEXS changes.
- G4NonEquilibriumEvaporator.cc: Add conservation checking, dump of output,
some fixes for "PEX" adjustments as EEXS changes.
- G4Fissioner.cc: Add conservation checking, remove addition of excitation
energy to input nucleus mass, since already included.
13 July 2010 Michael Kelsey
---------------------------
- G4CascadeCheckBalance.cc: Hide violation reports behind verbose == 1.
- G4ElementaryParticleCollider.cc: Bump ::collide() message to verbose > 1.
- G4EquilibriumEvaporator.cc: Add conservation checking, collapse if-cascades
by doing failure tests and exits up front, add sanity check on eex_real.
- G4IntraNucleiCascader.cc: Add diagnostic messages and some FIXME
comments, validate afin/zfin against G4NucleiModel result.
- G4InuclCollider.cc: Move conservation check outside verbosity flag. This
adds to CPU usage, so may need #ifdef protection later. Adjust a few
verbosity levels.
- G4LorentzConvertor.cc: Bump all diagnostic messages to verbose > 2.
- G4NucleiModel.cc: Simplify main if-block to put failure up front; add
debugging messages when decrementing proton or neutron counts.
11 July 2010 Michael Kelsey
---------------------------
- G4CascadeCheckBalance: Add ctor argument with name of parent class; use
this name when reporting results. Add interface for nuclear fragment
list. Allow parent class name to be changed dynamically.
- G4BigBanger.cc, G4CascadeInterface.cc, G4ElementaryParticleCollider.cc,
G4InuclCollider.cc, G4NucleiModel.cc: Pass name to G4CascadeCheckBalance.
- G4Fissioner.cc: Use G4CascadeCheckBalance to test energy conservation.
- G4InuclNuclei.hh: Add model ID as optional ctor argument.
- G4InuclCollider.cc: Move balance checks on evaporators outside verbosity.
Adjust name of G4CascadeCheckBalance for clear reporting.
- G4VCascadeCollider.hh: Add protected function to change name dynamically.
6 July 2010 Dennis Wright (hadr-casc-V09-03-55)
-----------------------------------------------
- G4IntraNucleiCascader.cc: add to final particle list those cascade
particles which were formerly abandoned at cascade termination;
- G4IntraNucleiCascader.cc: allow meson excitons to pass out of nucleus
since they are not proper excitons, and would be lost otherwise
4 July 2010 Dennis Wright (hadr-casc-V09-03-54)
-----------------------------------------------
- tag changes up to now
2 July 2010 Michael Kelsey
--------------------------
- G4BigBanger.cc: Moving "generateMomentumModules()" inside loop. For
three-body decays, the angles are not ajustable (so always fails).
- G4CascadeInterface.cc: Set verbosity on G4CollisionOutput.
- G4EquilibriumEvaporator.cc: Simplify if-cascades to reduce nesting (test
for errors and exit up front, rather than in else-blocks).
- G4InuclCollider.cc: Set verbosity on G4CollisionOutput.
- G4IntraNucleiCascader.cc: Throw away casacde which leaves "negative energy
recoil" (i.e. rest-frame energy of recoil less than mass of nucleus or
nucleon).
1 July 2010 Michael Kelsey
--------------------------
- G4InuclCollider.cc: Used wrong input target for conservation-law checking
subsequent to G4EquilibriumEvaporator.
- G4EquilibriumEvaporator.cc, G4NonEquilibriumEvaporator.cc: Handle
excitation energy differently with new G4InuclNuclei interface. Compute
updated values correctly, by taking nuclear mass difference then
subtracting energy of evaporated particle.
- G4InuclNuclei: Reorganization to properly incorporate excited states.
Excitation energy included in mass in all cases. setExcitationEnergy() now
replaces G4PartDefn pointer with new excited state. getNucleiMass() takes
(optional) excitation, calls G4NucleiProperties to get mass value. For
weird fragments, multiple isomers allowed, assigned unique non-standard
PDG codes. Include particle name in printout (now in .cc file).
- G4CollisionOutput.cc: Do not include nuclear excitation energy in output
sum; now included with nuclear mass automatically (and properly).
- G4CascadeCheckBalance.cc: Do not include nucler excitation energy in input
sum; now inluded with nuclear mass automatically (and properly).
- G4IntraNucleiCascader.cc: For recoil nuclear fragments, treat excitation
energy properly: compute as difference between recoil "mass" (recoil-frame
energy) and ground-state A/Z mass, and pass into G4InuclNuclei ctor.
After the cascade, add some recoil energy checks to deal with both
floating-point round-off, and quasi-elastic scatters (which change the
bullet direction, and leave the nucleus with "missing" energy).
- G4BigBanger.cc: Simplify boost to "target" nucleus, using "boostVector"
instead of G4LorentzConvertor machinery.
30 June 2010 Michael Kelsey
---------------------------
- G4BigBanger.cc: Improve handling of excitation energy as part of nuclear
mass, deal with two-body explosion properly (x=0.5, not random). Some
tweaks to diagnostic messages.
- G4CascadeCheckBalance: Add excitation energy to total energy for bullet
and target nuclei. This is done in G4CollisionOutput for secondaries. It
is NOT relativistically correct (should add to mass, not energy), but is
consistent.
- G4CollisionOutput.cc: Use "getExitationEnergyInGeV()" instead of "0.001*".
- G4IntraNucleiCascader.cc: More diagnostic messages, improve the afin/zfin
sanity check by requiring A>=Z.
28 June 2010 Michael Kelsey
---------------------------
- G4CascadeCheckBalance: Report violations on G4cerr always, regardless
of verbosity level. Add collide(...,<vector>) interface to allow use
from within G4ElementaryParticleCollider.
- G4ElementaryParticleCollider.cc: Add conservation checks within ::collide().
- G4IntraNucleiCascader.cc: Add more diagnostic messages. Test for
negative values of afin, zfin, and try again. Set round-off limit (1e-6),
and test nuclear recoil energy for bound (setting to zero) before doing
energy-violation test.
- G4InuclNuclei.cc: Abort job if passed negative Z or A argument.
28 June 2010 Michael Kelsey
---------------------------
- G4BigBanger.cc: Missed one instance of GetBindingEnergy().
26 June 2010 Dennis Wright
--------------------------
- G4InuclNuclei: Fix bug in calculation of PDG code.
25 June 2010 Michael Kelsey (hadr-casc-V09-03-53)
-------------------------------------------------
- G4ElementaryParticleCollider.cc: MAJOR BUG FIX: Three different places
in generating N-body momenta had incorrect "recoil" calculations. The
Nth four-vector was computed as simply -total, which produced negative
energy states (obviously). The correct calculation should have been
N = G4LV(0,0,0,etot) - (total) in each instance.
24 June 2010 Michael Kelsey (hadr-casc-V09-03-52)
-------------------------------------------------
- G4CascadeCheckBalance.cc: Bug fixes to limit checks; should be using
std::abs(), or negative violations don't get caught! Also did some
cleanup for compiler warnings see on Linux.
23 June 2010 Michael Kelsey
---------------------------
- G4CascadeInterface.cc: Fix infinite-loop bug with energy-violation; must
check for (nTries>maxTries) outside parenthetical, with balance.okay()
inside. Do conservation checks all the time, not just with flag set. If
e-violation is "infinite loop", dump last generated event and abort job.
- G4CascadeCheckBalance: Add checks on baryon number, charge, and kinetic
energy. "Global" sanity check (::okay() function) does not include K.E.
23 June 2010 Michael Kelsey (hadr-casc-V09-03-51)
-------------------------------------------------
- bindingEnergy.cc: Replace entire function with call-through to
G4NucleiProperties. Copy test for valid A/Z from there, and return
0. directly on failure; suppresses warning message in 9.4-beta.
- G4EquilibriumEvaporator.cc, G4Fissioner.cc, G4IntraNucleiCascader.cc
G4InuclNuclei.cc, G4NonEquilibriumEvaporator.cc, G4NucleiModel.cc
G4VCascadeCollider.cc: Restore calls to local "bindingEnergy()" to
get wrapper function above; suppresses warning messages in 9.4-beta.
- G4NucleiModel.cc: Make class re-usable (had been assumed in -47 tag, but
was not true!), by clearing all parameter vectors in generateModel().
Values of A,Z are tested first, and previous data kept if same nucleus is
being modelled.
23 June 2010 Michael Kelsey
---------------------------
- G4CascadeInterface.cc: Minor fix to rationalize version jumpings.
- G4NucleiModel.cc: Fix bug in partners list termination mods below, and
remove reflection-recoil from boundaryTransition().
21 June 2010 Michael Kelsey (MHK-20100621)
------------------------------------------
- G4CascadeInterface.cc: Bring MHK-20100620 version back to HEAD, make same
parenthesis fix for GCC 4.5 compilation.
- G4IntraNucleiCascader.cc: Bug fix nuclear recoil kinematics introduced in
MHK-20100620.
- G4NucleiModel.cc: Bring MHK-20100620 version back to HEAD, apply ctor
argument fix. Eliminate creating temporaries for terminal "partners" on
list; default ctor will take care of it. Hide negative path-length report
behind verbose flag, and don't return an empty list.
Add block of code in ::boundaryTransition() which recoils the nucleus when
the secondary is reflected off the potential, to balance the momentum
transfer. This is implemented by computing the boost for the full nucleus
using the computed three-momentum transfer, and applying that boost to the
secondary.
23 June 2010 Michael Kelsey (hadr-casc-V09-03-50)
-------------------------------------------------
- G4IntraNucleiCascader.cc: Restore G4NucleiModel as local data member.
Not well designed for reuse.
21 June 2010 Michael Kelsey (hadr-casc-V09-03-49)
-------------------------------------------------
NOTE: Changes below were version jumped into V09-03-48. Tag above ONLY
includes these two changes!
- G4CascadeInterface.cc: Add parentheses in main iteration loop to support
mixed && and || (reported by gcc-4.5).
- G4NucleiModel.cc: Fix mistake in passing ctor args to generateModel().
20 June 2010 Michael Kelsey (MHK-20100620)
------------------------------------------
- G4CascadeCheckBalance: New utility class to do energy and momentum
conservation testing. Implemented as a "collider" to resue interface.
- G4CascadeInterface.cc: Use new G4CascadeCheckBalance for energy
conservation.
- G4CollisionOutput: Add setVerboseLevel() function, diagnostic reports in
::setOnShell(), and collapse if-cascades to use "if (!xxx) return" instead
of multiple nestings.
- G4ElementaryParticleCollider.cc: Collapse if-cascade to use "if (!xxx)
return" instead of multiple nestings.
- G4IntraNucleiCascader.cc: Improve diagnostic messages, change some G4cout
to G4cerr.
- G4InuclCollider: Make output buffers data members to reduce churn;
simplify if-cascades to use "if (!xxx) return" instead of nesting; add
energy-conservation checks at each stage of cascade.
- G4NucleiModel.cc: Improve diagnostics, collapse if-cascades to use "if
(!xxx) return" instead of multiple nestings.
18 June 2010 Michael Kelsey (hadr-casc-V09-03-48)
-------------------------------------------------
- G4CascadeInterface.cc: Add check on energy conservation between initial
and final states; more than 5% imbalance triggers repeat generation of
cascade. This check may be disabled with flag G4CASCADE_SKIP_ECONS. Also
did some minor cleanup of the code.
- cascade/GNUmakefile: Add support for new flag above.
17 June 2010 Michael Kelsey (hadr-casc-V09-03-47)
-------------------------------------------------
- G4CascadeInterface, G4PreCompoundCascadeInterface: Make G4InuclCollider a
local data member, pass verbosity to it in ::ApplyYourself().
- G4InuclCollider, G4ElementaryParticleCollider, G4IntraNucleiCascader,
G4EquilibriumEvaporator, G4BigBanger: Make all sub-colliders local data
members, pass verbosity to each of them.
- G4NucleiModel: Add ctors and generateModel() signatures so both can do
particle or A/Z initialization. Add setVerboseLevel() function.
17 June 2010 Michael Kelsey (hadr-casc-V09-03-46)
-------------------------------------------------
- cascade/GNUmakefile: Add series of "ifneq (,...)" blocks to map
environment variables for debugging onto "-D..." compiler flags:
G4CASCADE_COULOMB_DEV
G4CASCADE_DEBUG_CHARGE
G4CASCADE_DEBUG_INTERFACE
G4CASCADE_DEBUG_SORT
G4CASCADE_WATCHER_HIGHZ
- G4CascadeInterface.cc: Replace preprocessor flags "debug_G4...Interface"
with G4CASCADE_DEBUG_INTERFACE, and "BERTDEV" with G4CASCADE_COULOMB_DEV.
Fix bug with information access in debugging block.
- G4EquilibriumEvaporator.cc, G4IntraNucleiCascader.cc,
G4NonEquilibriumEvaporator.cc: Eliminate preprocessor flag RUN and all
code contained in "#else" blocks.
- G4LorentzConverter.cc: Add diagnostic output with different levels: All
" >>>" entry messages done for verboseLevel >= 1; all numeric reports for
verboseLevel > 2.
- G4NucleiModel: Replace preprocessor flag "CHC_CHECK" with
G4CASCADE_DEBUG_CHARGE.
- G4PreCompoundCascadeInterface.cc: Replace preprocessor flag
"debug_G4...Interface" with G4CASCADE_DEBUG_INTERFACE. Fix bug with
information access in debugging block.
- G4WatcherGun.cc: Replace preprocessor flag "PB" with G4CASCADE_WATCHER_HIGHZ.
16 June 2010 Michael Kelsey
---------------------------
- G4CascadeInterface.hh: Add setVerboseLevel() function.
- G4IntraNucleiCascader.cc: Add reporting of momentum content for residual
nuclear fragment, list of final-state particles, some cleanup of momentum
balancing code.
- G4LorentzConvertor: Add reporting of bullet and target four-vectors.
- G4NucleiModel.cc: Add diagnostic output for partner-list generation,
replace one random-angle code block with generateWithRandomAngles().
15 June 2010 Michael Kelsey (hadr-casc-V09-03-45)
-------------------------------------------------
- G4CascadeInterface.cc, G4PreCompoundCascadeInterface.cc: When converting
output particles from K0/K0bar to K0S/K0L, convert kinetic energy from
Bertini internal units (GeV) to GEANT4 units (MeV).
- G4VCascadeCollider: Make two separate ctors, name and name+verbose, with
no default values. All subclasses *must* provide a literal name string.
12 June 2010 Michael Kelsey (hadr-casc-V09-03-44)
-------------------------------------------------
- G4CascadeT33piNChannel.cc: Swapped 8-body final state tables for pipP
vs. pimN.
11 June 2010 Michael Kelsey (hadr-casc-V09-03-43)
-------------------------------------------------
- G4CascadeData.hh: Equally trivial fix for compiler warking on Intel ICC
for index[] array bounds in ::initialize(). Dimension array as [9], and
set all values.
08 June 2010 Gunter Folger (hadr-casc-V09-03-42)
------------------------------------------------
- trivial fix for compiler warning on gcc43 on empty body in for(...) in
cascade/include/G4CascadeInterpolator.icc:67
01 June 2010 Michael Kelsey (hadr-casc-V09-03-41)
-------------------------------------------------
- paraMaker.cc: Fix vector initialization for Windows crash.
26 May 2010 Dennis Wright (hadr-casc-V09-03-40)
-----------------------------------------------
- G4NucleiModel: remove conversion to fm, and conversion of cross
sections to fm**2
21 May 2010 Michael Kelsey (hadr-casc-V09-03-39)
------------------------------------------------
Final tag for inclusion in GEANT 4.9.4-beta. Will be validated internal and
included in global Hadronics tag.
- G4CascadeSampler.icc: Activate time-saving checks on single bins.
- G4ElementaryParticleCollider.cc: Remove special case for nucleon elastic
scattering.
21 May 2010 Michael Kelsey (kelsey-20100521c)
---------------------------------------------
- G4CascadeInterface, G4PreCompoundCascadeInterface, G4InuclEvaporation:
Simplify code: fetch G4DynamicParticle out of outgoing G4InuclParticles,
rather than creating new ones. Remove all of the *Collider data members
(instantiated within G4InuclCollider). Move final state rotations to
G4CollisionOutput.
- G4InuclParticle: Provide accessor to return G4DynamicParticle.
- G4CollisionOutput: Add function to apply LorentzRotation to both lists;
used by G4CascadeInterface.
- G4ElementaryParticleCollider: Avoid memory churn with G4LorentzVector
temporaries.
21 May 2010 Michael Kelsey (kelsey-20100521b)
---------------------------------------------
- G4VCascadeCollider: New base class for all Colliders. Carries
verboseLevel data member and set-function. ::collide() is pure virtual.
Additional protected member functions will be defined to include all code
shared across multiple Colliders.
- Migrate all of the "Collider" factories to use new base class, removing
common member functions, and replace passed-in sibling colliders with
local data members (pointers for now). Since none of these classes have
persistent (state preserving) data members, the cost of more than one
instantiation is minimal.
G4BigBanger
G4ElementaryParticleCollider
G4EquilibriumEvaporator
G4EvaporationInuclCollider
G4Fissioner
G4IntraNucleiCascader
G4InuclCollider
G4NonEquilibriumEvaporator
G4PreCompoundInuclCollider
- G4CascadeInterface.cc, G4InuclEvaporation.cc,
G4PreCompoundCascadeInterface.cc: Remove siblings from constructors for
the Colliders.
- G4InteractionCase.hh: Eliminate unnecessary copying of std::pair<>'s, use
initializers in ctors, add clear() function to reset to 0-0-0. Move
evaluation of bullet vs. target to new set() function, replacing separate
bulletTargetSetter() in the colliders. Add boolean accessors to avoid
hard-coding inter_case values. Change code numbers so nucleus collisions
are negative, and positive codes refer to the "is" or "rtype" numbers.
- G4ElementaryParticleCollider.cc: Use G4InteractionCase to compute "is",
instead of hardwiring the meaning.
- G4Collider.hh: Remove empty and never-used file.
- G4EvaporationInuclCollider.cc: Eliminate unnecessary creation of
duplicate G4InuclNuclei: pass input through to G4EquilibriumEvaporator.
- G4LorentzConvertor: Add interfaces to pass G4InuclParticles directly.
21 May 2010 Michael Kelsey (kelsey-20100521a)
---------------------------------------------
Replace hand-coded interpolation of arrays with use of G4CascadeInterpolator.
In all cases, local arrays are replaced with static const, and the
interpolator object itself is declared static, to reduce memory churn.
G4NucleiModel::totalCrossSection()
G4EquilibriumEvaporator::getQF()
G4InuclSpecialFunctions::paraMaker[Truncated]() (in paraMaker.cc)
- G4CascadSpecialFunctions: Remove. totalCrossSection() redundant with
G4NucleiModel. Move absorptionCrossSection() to G4NucleiModel.
- G4CascadeInterpolator.icc: Bug fix to catch special case of exact upper
bin edge (occurs when !doExtrapolation). If index == last + 0., just
return upper edge value, without calculation.
- G4NucleiModel.cc: Use G4Cascade{Pi*}Channel and G4Cascade{NN,NP,PP}Channel
classes to get total cross-sections for pi-N and N-N scattering. Arrays
for kaon and hyperon scattering should be migrated as well, once binning
is resolved. Move absorptionCrossSection() here from SpecialFunctions.
20 May 2010 Michael Kelsey (kelsey-20100521)
--------------------------------------------
- G4CascadeInterpolator.icc: Two bug fixes involving values at array edges.
19 May 2010 Michael Kelsey, Dennis Wright
-----------------------------------------
- G4BertiniData.hh,.cc: Remove unused and unnecessary class.
- G4NucleiModel.cc: convert nuclear radii to fm and cross sections to
fm**2. Use six-zone model for A > 99, and make alpha a 1-zone
nucleus.
- G4CascadSpecialFunctions: convert pion absorption cross sections from
mb to fm**2, correct spelling of method absorptionCrossSection
17 May 2010 Michael Kelsey (hadr-casc-V09-03-38)
------------------------------------------------
- paraMaker.cc (G4InuclSpecialFunctions::paraMaker[Truncated]): Upper edge
of interpolation array not properly handled. Should be "if (Z >= 70.0)".
This affects G4NonEquilibriumEvaporator output.
17 May 2010 Michael Kelsey (hadr-casc-V09-03-37)
------------------------------------------------
Bug fixes for compiler warnings (not seen on MacOSX, even with g++ -Wall)
- G4CascadeData.hh: Dummy arrays needed double-braces for initialization.
- G4CascadeInterpolator.icc: Extraneous decimal point in "for (i=0.;".
- G4CascadeKzeroBarNChannel.cc: Left three "old" arrays in place during
conversion.
14 May 2010 Michael Kelsey (hadr-casc-V09-03-36)
------------------------------------------------
Remove obsolete files following reorganization of two-body scattering
lookup tables.
G4CascadeElasticInterface.hh,.cc
G4ElasticCascadeInterface.hh,.cc
G4FinalStateSampler.hh,.cc
G4NucleonSampler.hh,.cc
G4PionSampler.hh,.cc
- G4CascadeChannel.hh,.cc: All functionality removed, replaced with
namespace containing only getQnums and CheckQnums validation functions.
14 May 2010 Michael Kelsey (hadr-casc-V09-03-35)
------------------------------------------------
Replace independent parallel samplers with templated base class and single
implementation. This completes the reorganization of the channel tables.
- G4CascadeSampler: Redefine as templated base, taking binning array as
constructor argument. Move implementation file from .cc to .icc.
NOTE: G4CascadeSampler.cc is removed, since not consistent with new .hh.
- G4PionNucSampler: Subclass of G4CascadeSampler<30>, replaces
G4FinalStateSampler, using bins array from there.
- G4KaonNucSampler: Sublcass of G4CascadeSampler<31>, replaces previous
G4CascadeSampler, using bins array from there.
- G4Cascade*Channel.hh: Change all typedefs to pass appropriate of two new
samplers in template.
- G4ElementaryParticleCollider.cc: Replace long "if (is==)"-cascades with
switch blocks. Move all getOutgoing calls (for pions and nucleons) into
one function, and call it from outside multiplicity checks. Use
G4CascadeInterpolator for angular distributions. Set modelID=3 in all
G4InuclParticle constructions.
14 May 2010 Michael Kelsey (hadr-casc-V09-03-34)
------------------------------------------------
Extract lookup tables from G4PionSampler and G4NucleonSampler into
individual "classes" defined and initialized with G4CascadeData.
- G4CascadePi{Plus,Minus,Zero}{P,N}Channel.hh: Six new typedefs defined as
with the existing G4CascadeXXXChannel, to replace G4PionSampler.
- G4CascadeT33piNChannel.cc: Lookup tables for both PiPlusP and PiMinusN,
implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc.
- G4CascadeT31piNChannel.cc: Lookup tables for both PiMinusP and PiPlusN,
implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc
- G4CascadeT11pizNChannel.cc: Lookup tables for both PiZeroP and PiZeroN,
implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc
- G4Cascade{PP,NP,NN}Channel.hh: Three new typedefs defined as with the
existing G4CascadeXXXChannel, to replace G4NucleonSampler.
- G4CascadeT1NNChannel.cc: Lookup tables for both p-p and n-n scattering,
implemented as with existing G4CascadeXXXChannel, from G4NucleonSampler.cc
- G4CascadeT0npChannel.cc: Lookup tables for p-n scattering, implemented as
with existing G4CascadeXXXChannel, from G4NucleonSampler.cc
- G4CascadeFunctions.hh, .icc: Pass std::vector as non-const argument to
getOutgoingParticleTypes() instead of returning internal buffer.
- G4CascadeSampler.cc, G4FinalStateSampler.cc: Add some checks in
findFinalStateIndex, fillSigmaBuffer, and sampleFlat(), such that
single-entry ranges don't go through the analysis, just return index 0.
- G4ElementaryParticleCollider.cc: Follow change to getOutgoingParticleTypes()
in generateStrangeChannelPartTypes(). Replace all uses of G4PionSampler
and G4NucleonSampler with new channel "classes".
14 May 2010 Michael Kelsey (hadr-casc-V09-03-33)
------------------------------------------------
Continue consolidation of two-body collision lookup tables. Unify
interfaces between pion/nucleon and kaon/hyperon samplers.
- G4CascadeData: Many changes to support use as data class for both
kaon/hyperon and pion/nucleon tables (migration will be next tag):
1) Add new first argument to template with number of bins in energy
interpolation. This replaces the (temporary) use of
G4CascadeSampler::energyBins within the class definition.
2) Add two additional template arguments, N8 and N9, with default values
of zero. These will be used by the pion/nucleon tables, but not by the
existing kaon/hyperon tables.
3) Define additional arrays for 8- and 9-body final states, using
conditional dimensioning (e.g., if N8==0, use [1]). Define second
9-body constructor to accept and initialize the new arrays.
4) Eliminate static initialization of index[], moving it into
initialize(). Template specialization can't be used with data!
5) Add separate "sum" (summed N-body cross-sections) and "tot" arrays
(measured inclusive xsec). Latter is a const-ref, initialized to "sum"
if not provided as ctor argument, with two new ctors as needed.
6) Add accessor to return maximum multiplicity (NM+1).
- G4CascadeFunctions.hh: Add second template argument to specify which
"final state sampler" is the base class. Use both T::data.tot and
T::data.sum in GetMultiplicity(), to support sum/tot comparisons in
pion/nucleon channels. Extend GetOutputParticleTypes() to support up to
multiplicity 9.
- G4CascadeFunctions.icc: Implementations of template class functions.
- G4CascadeXXXChannel.hh: Add "31," as initial template argument for Data.
Add G4CascadeSampler as second template argument in G4CascadeXXXChannel
typedef.
14 May 2010 Michael Kelsey (hadr-casc-V09-03-32)
------------------------------------------------
Continue revisions to two-body collision lookup tables. Make the kaon and
hyperon channels compatible with the pion/nucleon samplers, before the next
stage of unifying the structure.
- G4CascadeSampler: NEW class, parallel to G4FinalStateSampler but with a
different energy binning. Used as base class to G4CascadeFunctions<T>,
from which the cross-section and other arrays are passed. Implement
findMultiplicity (cf. G4CascadeFunctions::getMultiplicity) to return the
true value, not the array index.
This class replaces functionality of G4CascadeChannel, which is redundant.
- G4CascadeChannel: Remove all interpolation code, leaving only getQnums().
- G4CascadeFunctions: Inherit from G4CascadeSampler for interpolations,
except for final-state extraction (where FS type arrays are dealt with
locally, not passed). Public static functions rely on private instantiated
version of class to do work, so that G4CascadeSampler gets instantiated.
- G4CascadeData: Remove final template argument (total number of indices),
as redundant with simple sum of multplicity indices. Use template args to
dimension data member arrays (const references), and to statically
initialize the start-stop index table. Make large cross-sections table
G4double, not G4float. Define ctor to pass in array refs for initialization.
Reduce index array to single dimension (start=index[i], stop=index[i+1]).
- G4CascadeXXXChannel: All of the initial-state channel "classes"
(typedef names) modified to follow G4CascadeData rewrite. In .cc file,
the explicit lookup tables are static, and passed by const-ref to
G4CascadeData. The "initializer" struct is dropped; with the static
"data" object initialized by ctor here.
- G4ElementaryParticleCollider.cc: In ::generateMultiplicity(), eliminate
extra "+2" and "-2" applied to local "mul" variables. With change above,
all functions return return true multiplicity, not array index.
- G4FinalStateSampler: Add findFinalStateIndex() function, to make
interface match G4CascadeSampler exactly. Reduce index array to single
dimension.
- G4PionSampler.cc, G4NucleonSampler.cc: Use new findFinalStateIndex()
function in GetFSPartTypesXXX() functions. Reduce index array to single
dimension (start=index[i], stop=index[i+1]).
14 May 2010 Michael Kelsey (hadr-casc-V09-03-31)
------------------------------------------------
Begin revisions to two-body collision lookup tables. This will be a major
reorganization, splitting the G4PionSampler and G4NucleonSampler into
separate little "classes" (typedefs) for each initial state, in the same way
that the kaon and hyperon states are done now. The underlying templated and
base classes will be unified across all of the channels.
- G4CascadeInterpolator: NEW class to encapsulate interpolation procedure.
Uses C-style arrays passed by dimensioned reference, to allow compile-time
array bounds checking. Template argument is array dimension, and array of
energy bins is saved by ctor. User array to be interpolated is passed as
function argument. Last value interpolated, along with result, is saved,
to allow fast multiple interpolations.
This class is substantially more lightweight than G4PhysicsVector.
- G4FinalStateSampler: Replace manual interpolation with G4CascadeInterpolator.
Remove redundant sampleFlat(...) function with argument. Rename member
functions in anticipation of merging with G4CascadeFunctions.
- G4PionSampler.cc, G4NucleonSampler.cc: Follow use of G4CascadeInterpolator
above, and drop local caching of interpolation results. Reduce offset
list for cross-sections to one dimension (start=index[i], stop=index[i+1]).
11 May 2010 Michael Kelsey (hadr-casc-V09-03-30)
------------------------------------------------
Bug fixes in the two-body scattering code.
- G4PionSampler.cc, G4NucleonSampler.cc: Fix long-standing bug with offset
indices computed for cross-section tables. XXXindex[m][0] (start) and
XXXindex[m][1] (stop) are computed in initChannels() as [start,stop]
inclusive range (i.e., "for (i=start; i<=stop; i++)"), but used with
G4FinalStateSampler::fillSigmaBuffer (and its predecessor code) as
[start,stop) exclusive range (i.e., normal C style "for (i=start; i<stop;
i++)"). This is fixed by properly setting XXXindex[m-1][1] =
XXXindex[m][0], and using the ranges consistently in initChannels().
- G4ElementaryParticleCollider.cc: In the six pion-nucleon scatters, the
two-body final state is incorrectly tested for charge-exchange. All the
if statements check whether "particle_kinds[0]" is the initial nucleon,
but the outgoing baryon actually appears in particle_kinds[1]. Replace
the individual tests with the use of "finaltype", moved out of the
strangeness if-block.
06 May 2010 Michael Kelsey (hadr-casc-V09-03-29, hadr-casc-V09-03-23-01)
------------------------------------------------------------------------
- G4Diproton.cc, G4Dineutron.cc, G4UnboundPN.cc: After creating instance
of these "internal" particles, remove the pointer from G4ParticleTable.
This avoids an issue with the FTFP de-excitation code, which occasionally
picks up the diproton and puts it onto a final-state particle list.
These three changes, and nothing else, are "backported" on top of -23 for
continued validation tests.
30 Apr 2010 Dennis Wright (hadr-casc-V09-03-28)
-----------------------------------------------
- G4ElementaryParticleCollider:
improved pi-nucleon two-body angular distributions, and made
sampling of CM angle faster. As a result, the methods
getElasticCase and adjustIntervalForElastic were made redundant
and removed. Also removed array containing old angular distribution
parameters.
Now use nucleon-nucleon angular distributions for hyperon-nucleon
scattering, and pi-nucleon dsitributions for kaon-nucleon scattering
(until specific kaon distributions are added).
29 Apr 2010 Michael Kelsey (hadr-casc-V09-03-27)
------------------------------------------------
- G4InuclPartcleNames.hh: Long name "gamma" conflicts with math function.
Change back to "photon".
- G4InuclElementaryParticle.cc, G4InuclEvaporation.cc,
G4NonEquilibriumEvaporator.cc, G4NucleiModel.cc, G4NucleonSampler.cc,
G4PionSampler.cc, G4PreCompoundCascadeInterface.cc,
G4PreCompoundInuclCollider.cc: Replace "gamma" with "photon".
- G4InuclElementaryParticle.hh: Change "photon()" to "isPhoton()" to avoid
conflicts with names enum. Use names enum internally as well.
- G4ElementaryParticleCollider.cc, G4InuclCollider.cc,
G4PreCompoundInuclCollider.cc: Change "photon()" to "isPhoton()".
28 Apr 2010 Michael Kelsey (hadr-casc-V09-03-26)
------------------------------------------------
All changes below within "cascade/" subdirectory:
- G4InuclParticleNames.hh: Define enums for particle type codes, using both
"long" and "short" names copied from existing duplicated enums. One
change is that "kp" and "km" are replaced by "kpl" and "kmi" respectively,
since "km" conflicts with GEANT4 "kilometers" unit. Deploy in classes:
include/G4FinalStateSampler.hh
src/G4CascadeElasticInterface.cc
src/G4CascadeInterface.cc
src/G4ElasticCascadeInterface.cc
src/G4ElementaryParticleCollider.cc
src/G4InuclElementaryParticle.cc
src/G4InuclEvaporation.cc
src/G4NucleonSampler.cc
src/G4PionSampler.cc
src/G4PreCompoundCascadeInterface.cc
- G4InuclElementaryParticle.cc: Add Omega- and antinucleon partcles to lists.
No code uses these (yet).
24 April 2010 Michael Kelsey (hadr-casc-V09-03-25)
--------------------------------------------------
Remove redundant classes, G4Ibertini and G4BertiniRegionModel.
21 April 2010 Michael Kelsey (hadr-casc-V09-03-24)
--------------------------------------------------
- G4NucleiModel.hh,cc: Eliminate last remaining hardwired baryon masses.
18 April 2010 Michael Kelsey (hadr-casc-V09-03-23)
--------------------------------------------------
Final revisions to access std::vector<particle> via const-references:
G4CascadeInterface.cc
G4EquilibriumEvaporator.cc
G4IBertini.cc
G4InuclCollier.cc
G4NucleiModel.cc
G4PreCompoundCascadeInterface.cc
- G4CollisionOutput: Add new function to boost output lists to lab frame.
14 April 2010 Michael Kelsey (hadr-casc-V09-03-22)
--------------------------------------------------
- G4CascadeInterface.cc, G4IBertini.cc, G4PreCompoundCascadeInterface.cc:
In ::ApplyYourself(), do the check on K0L/K0S _before_ passing G4PartDefn
to G4InuclElemPart::type(). This avoids unnecessary warning message.
14 April 2010 Michael Kelsey (temporary: kelsey-memClean3)
----------------------------------------------------------
All changes below within "cascade/" subdirectory:
- G4FinalStateSampler: Replace "sigma" argument for sampling with data
member, add functions to fill sigma buffer by passing in array references.
Provide typedef for interpolator, and function to apply interpolation.
- G4PionSampler, G4NucleonSampler: Follow changes to base class,
eliminating much of the copy-and-paste code blocks via function calls.
Replace G4float arrays with G4double, to support passing into functions.
13 April 2010 Michael Kelsey (hadr-casc-V09-03-21)
--------------------------------------------------
All changes below within "cascade/" subdirectory:
- G4InuclSpecialFunctions.hh, paraMaker.cc, paraMakerTruncated.cc: Drop
return-by-value from paraMaker() and paraMakerTruncated(). Add second
argument with non-const reference to output buffer for return.
- G4EquilibriumEvaporator.cc: Follow changes above to paraMaker(), use
references to address parms.first and parms.second, instead of copying.
- G4NonEquilibriumEvaporator.cc: Follow changes above to
paraMakerTruncaed(), use references to address parms.first and
parms.second, instead of copying.
- G4Dineutron, G4Diproton, G4UnboundPN: Inherit from G4VShortLivedParticle,
per Kurashige. Thought it would eliminate G4ElectronOccupancy churn, but
did not.
12 April 2010 Michael Kelsey (hadr-casc-V09-03-20)
--------------------------------------------------
All changes below within "cascade/" subdirectory:
- G4NucleiModel: Move function implementations from .hh to .cc. Replace
manual sorting (inefficient O(N^2)) with std::sort() and simple
"less-than" function for std::pair<> "partners".
- G4CollisionOutput: Move function implementations from .hh to .cc. Use
std::vevtor<>::insert() to add vectors together.
- Replace return-by-value G4CollisionOutput with non-const reference buffer
passed into xxx::collide(), in the following classes:
G4BigBanger
G4CascadeElasticInterface
G4CascadeInterface
G4ElasticCascadeInterface
G4ElementaryParticleCollider
G4EquilibriumEvaporator
G4EvaporationInuclCollider
G4Fissioner
G4IBertini
G4IntraNucleiCascader
G4InuclCollider
G4InuclEvaporation
G4NonEquilibriumEvaporator
G4NucleiModel
G4PreCompoundCascadeInterface
G4PreCompoundInuclCollider
Note that some places where internal G4CollisionOutput buffers are being
used (and their contents appended to the global output) have not been
cleaned up yet. These will require some rearrangement of the algorithms,
or/and elimination of debugging output.
09 April 2010 Michael Kelsey (hadr-casc-V09-03-16-01)
-----------------------------------------------------
This modification is included in a pseudo-patch of hadr-casc-V09-03-16,
without brining in any of the -17 through -19 modifications.
- G4LorentzVector.cc: Protect two instances of sqrt() against tiny negative
arguments (due to tiny-tiny subtractions).
09 April 2010 Michael Kelsey (hadr-casc-V09-03-19)
--------------------------------------------------
All changes below within "cascade/" subdirectory:
- G4InuclParticle, G4InuclElementaryParticle, G4InuclNuclei: Eliminate
unused G4String ctor argument, introduced in hadr-casc-V09-03-01. Causes
a lot of pointless memory churn.
- G4BigBanger.cc: Fix type conversion warning I introduced by mistake.
08 April 2010 Michael Kelsey (hadr-casc-V09-03-18)
--------------------------------------------------
All changes below within "cascade/" subdirectory:
- G4PionSampler, G4NucleonSampler: For all ::GetFSPartTypes*() functions,
eliminate return-by-value std::vector<>, and pass in non-const reference
for filling in situ. Buffer is cleared.
- G4ElementaryParticleCollider.cc: Follow changes above for Sampler calls.
07 April 2010 Michael Kelsey (hadr-casc-V09-03-17)
--------------------------------------------------
All changes below within "cascade/" subdirectory:
Replace return-by-value std::vector<> with either const-ref returns, or
with use of an internal buffer which can be reused, to reduce memory
churn due to copying, allocation, and resizing.
- G4BigBanger: Create data buffer for lists of secondaries and momenta.
Fill buffers in ::generateBangInSCM() and ::generateMomentumModules(),
which are now non-const. Reference buffers in ::collide().
- G4CascadeFunctions::getOutgoingParticleTypes(): Make "kinds" a static
variable (buffer), and return it by const-ref.
- G4ElementaryParticleCollider: Eliminate return-by-value std::vector<>
on the functions listed below, by creating data buffers for particles,
momenta, and particle types. The functions become non-const and void:
::generateSCMfinalState(), ::generateMomModules()
::generateStrangeChannelPartTypes(), ::generateSCMpionAbsorption()
Also, in ::generateStrangeChannelPartTypes(), use a switch statement
instead of the long cascade of if-else-else.
- G4NucleiModel: Several member functions have different modifications:
::initializeCascad(bullet,target) -- Replace return value with a passed-in
(non-const reference) buffer to be filled. The calling code can
pass in a data member, local variable, or whatever.
::generateParticleFate() -- Replace local "thePartners" variable with data
member, filled below. Move "outgouing_cparticles" to data member
(fix the spelling!), and return by const-ref.
::generateInteractionPartners() -- Eliminate return value; fill data
member instead, to be used by ::generateParticleFate().
- G4IntraNucleiCascader.cc: Follow changes to initializeCascad() above.
- G4NucleonSampler, G4PionSampler: ** DON'T KNOW WHAT TO DO HERE **
- G4WatcherGun: Return const-ref to list of watchers, instead of copy.
Replace all uses of std::vector<>::resize(0) with ::clear(). The former
causes deallocation/reallocation/resizing cycles, while clear() just removes
content, preserving the allocated buffer.
include/G4CollisionOutput.hh
src/G4ElementaryParticleCollider.cc
src/G4NucleiModel.cc
src/G4WatcherGun.cc
07 April 2010 Dennis Wright (hadr-casc-V09-03-16)
-------------------------------------------------
- fix negative energy bug in G4BigBanger, and switch to using
G4NucleiProperties::GetBindingEnergy
07 April 2010 Michael Kelsey (hadr-casc-V09-03-15)
--------------------------------------------------
All changes below within "cascade/" subdirectory:
1) Systematically replace pass-by-value function arguments with const-refs.
This is the first step in reducing unnecessary memory churn, to be followed
by replacing return-by-value std::vector<> with non-const argument buffers.
include/G4CascadeChannel.hh
include/G4FinalStateSampler.hh
include/G4InuclEvaporation.hh
include/G4NuclWatcher.hh
src/G4CascadeChannel.cc
src/G4FinalStateSampler.cc
src/G4InuclEvaporation.cc
src/G4NuclWatcher.cc
2) Fix constness on some operator== and operator!= definitions.
include/G4CascadeElasticInterface.hh
include/G4CascadeInterface.hh
include/G4ElasticCascadeInterface.hh
include/G4IBertini.hh
include/G4PreCompoundCascadeInterface.hh
07 Apr 2010 Michael Kelsey (hadr-casc-V09-03-14)
------------------------------------------------
- G4Dineutron.hh, G4Diproton.hh, G4UnboundPN.hh:
Reset static "theInstance" pointer to zero in (now virtual) destructor.
- G4Dineutron.cc, G4Diproton.cc, G4UnboundPN.cc:
Implement constructor to do the G4Ions initialization, rather than in
::Definition(). Drop use of G4ParticleTable; just monitor static pointer.
Set "ShortLived" flag in G4Ions initialization, to avoid interactions with
ProcessManager.
- G4InuclNuclei.cc: In ::makeNuclearFragment(), set "ShortLived" flag for
G4Ions, to avoid interactions with ProcessManager.
26 Mar 2010 Dennis Wright (hadr-casc-V09-03-13)
-----------------------------------------------
- G4EquilibriumEvaporator.cc: remove line #include "G4types.hh"
(file doesn't exist)
20 Mar 2010 Michael Kelsey (hadr-casc-V09-03-12)
------------------------------------------------
All changes below within "cascade/" subdirectory:
- G4EquilibriumEvaporator.cc: Move subtraction of Q1[i] outside new
GetBindingEnergy() call.
- G4InuclNuclei.cc::makeNuclearFragment(): Add message warning users about
non-physical creation. Use new GetBindingEnergy() function here as well
(V09-03-05 didn't have this function, so wasn't included in migration).
19 Mar 2010 Michael Kelsey (hadr-casc-V09-03-11)
------------------------------------------------
All changes below within "cascade/" subdirectory:
- G4InuclSpecialFunctions: Two new functions:
::generateWithRandomAngles() to encapsulate random-direction generation.
This function and existing generateWithFixedTheta() take optional mass
argument to produce proper four-vector.
Replace duplicated random angle code with new function above, and use new
optional mass argument where available:
G4BigBanger.cc
G4ElementaryParticleCollider.cc
G4EquilibriumEvaporator.cc
G4Fissioner.cc
G4NonEquilibriumEvaporator.cc
G4NucleiModel.cc
::G4cbrt(): Define cube-root in terms of log and exp, rather than pow().
Note that "cbrt()" can't be used, as it conflicts with <math.h> on Linux.
Eliminate unnecessary uses of std::pow() with fixed arguments. For
example, "pow(x,3)" -> "x*x*x", "pow(x,1/3)" -> G4cbrt(x):
G4BertiniRegionModel.cc
G4EquilibriumEvaporator.cc
G4EvaporationInuclCollider.cc
G4Fissioner.cc
G4IntraNucleiCascader.cc
G4InuclCollider.cc
G4NonEquilibriumEvaporator.cc
G4NucleiModel.cc
G4PreCompoundInuclCollider.cc
G4RegionModel.cc
bindingEnergyAsymptotic.cc
bindingEnergyKummel.cc
WARNING! In G4IntraNucleiCascader.cc, the Coulomb barrier was calculated
using "std::pow(A, 0.333)", rather than the "exact" 1./3. This leads to
per-mil differences in the value, and occasional differences in wheter an
outgoing particle tunnels through. The new code is exact to double
precision, and therefore fixes a bug.
- Move "using" directive from all .hh files to corresponding .cc, along with
some unnecessary #includes:
G4BigBanger.hh, .cc
G4ElementaryParticleCollider.hh, .cc
G4EquilibriumEvaporator.hh, .cc
G4EvaporationInuclCollider.hh, .cc
G4Fissioner.hh, .cc
G4IntraNucleiCascader.hh, .cc
G4InuclCollider.hh
G4InuclNuclei.hh
G4NonEquilibriumEvaporator.hh, .cc
G4NucleiModel.hh, .cc
G4PreCompoundInuclCollider.hh, .cc
- G4NuclWatcher.hh and .cc (new): Move implementation code from .hh to .cc.
18 March 2010 Michael Kelsey (hadr-casc-V09-03-10)
--------------------------------------------------
All changes below within "cascade/" subdirectory:
Missed one bug in repairs below, found when testing 4 GeV pi -> Pb.
- G4Fissioner.cc: Replace incorrect G4LorentzVector ctor arguments
(G4ThreeVector,m) with call to G4LV::setVectM().
17 March 2010 Dennis Wright (hadr-casc-V09-03-09)
-------------------------------------------------
Fix warning in G4InuclNuclei.cc: G4Ions:G4Ions was being called with
a double (a) in its 13th argument, when an integer is required. Use
G4lrint to convert.
16 March 2010 Michael Kelsey (hadr-casc-V09-03-08)
--------------------------------------------------
All changes below within "cascade/" subdirectory:
Fix bugs introduced during migration from G4CascadeMomentum to
G4LorentzVector (see hadr-casc-V09-03-03). With these bug fixes, 2000
events generated with "ppi4GeV" test executable are equivalent to production
output (GEANT 4.9.3), allowing for differences in hardwired nucleon masses.
When compared with hadr-casc-V09-03-02 (which uses G4ParticleDefinition for
all the particle masses) the 2000-event results are identical within
floating point precision.
- G4BigBanger.cc: Line 72, fix unit conversion bug, GeV/MeV vs. MeV/GeV.
Replace incorrectly introduced cross-product with original vector
manipulation, written with G4LorentzVector accessors.
- G4CollisionOutput::selectPairToTune(): Test on "i3>0" not appropriate with
G4LorentzVector indexing. Replace with failure-test on "i3<0". Also
simplify final if-cascade for readability.
- G4EquilibriumEvaporator.cc: Replace incorrect G4LorentzVector ctor
arguments (px,py,pz,m) with call to G4LV::setVectM().
- G4IntraNuclearCascader.cc: Replace leftover momentum_out[0] with .e().
- G4InuclNuclei.cc,hh: Add new function ::makeNuclearFragment(a,z,exc),
which "manually" construct a G4Ions object for cases where A/Z is not a
valid stable or unstable nucleus. These unphysical objects are passed
back from G4IntraNuclearCascader.cc and immediately passed to G4BigBanger
for conversion to nucleons. A future change should move this action into
G4INCascader and eliminate the need for unphysical nuclei.
- G4LorentzConvertor::toTheTargetRestFrame(): Remove local declaration of
scm_momentum, restoring access to data member with that name.
- G4NucleiModel::generateQuasiDeutron(): Undo consolidation of dmom with
local variables for each of the nucleon momenta. Stack corruption led to
differences in unbound p-n state relative to pp and nn states.
Minor updates: Changed all the "verboseLevel()" initializers to (0), via a
shell script. This allows making the code uniformly verbose or quiet.
include/G4NucleiModel.hh
src/G4Analyser.cc
src/G4CollisionOutput.cc
src/G4ElementaryParticleCollider.cc
src/G4FissionStore.cc
src/G4Fissioner.cc
src/G4IntraNucleiCascader.cc
src/G4NonEquilibriumEvaporator.cc
src/G4NucleiModel.cc
src/G4WatcherGun.cc
16 March 2010 Michael Kelsey (hadr-casc-V09-03-DO-NOT-USE)
--------------------------------------------------
All changes below within "cascade/" subdirectory:
Restore version hadr-casc-V09-03-05 to HEAD of CVS in order to apply bug
fixes and re-deploy migration from G4CascadeMomentum to G4LorentzVector.
This reversion is tagged as a checkpoint only, and should not be used for
testing or running (since it restores the known bugs in V09-03-03).
The update to G4InteractionCase.hh by Gabriele Cosmo in hadr-casc-V09-03-07
is not touched by this reversion!
The following CVS commands were used to perform the reversion:
cvs update -j1.13 -j1.12 cascade/include/G4CascadParticle.hh
cvs update -j1.4 -j1.3 cascade/include/G4CascadeMomentum.hh
cvs update -j1.15 -j1.14 cascade/include/G4CollisionOutput.hh
cvs update -j1.23 -j1.22 cascade/include/G4ElementaryParticleCollider.hh
cvs update -j1.9 -j1.8 cascade/include/G4InuclCollider.hh
cvs update -j1.19 -j1.18 cascade/include/G4InuclElementaryParticle.hh
cvs update -j1.12 -j1.11 cascade/include/G4InuclNuclei.hh
cvs update -j1.16 -j1.15 cascade/include/G4InuclParticle.hh
cvs update -j1.13 -j1.12 cascade/include/G4InuclSpecialFunctions.hh
cvs update -j1.13 -j1.12 cascade/include/G4LorentzConvertor.hh
cvs update -j1.4 -j1.3 cascade/include/G4ParticleLargerBeta.hh
cvs update -j1.9 -j1.8 cascade/include/G4ParticleLargerEkin.hh
cvs update -j1.20 -j1.19 cascade/src/G4BigBanger.cc
cvs update -j1.13 -j1.12 cascade/src/G4CascadParticle.cc
cvs update -j1.6 -j1.5 cascade/src/G4CascadeElasticInterface.cc
cvs update -j1.68 -j1.67 cascade/src/G4CascadeInterface.cc
cvs update -j1.18 -j1.17 cascade/src/G4CollisionOutput.cc
cvs update -j1.7 -j1.6 cascade/src/G4ElasticCascadeInterface.cc
cvs update -j1.6 -j1.5 cascade/src/G4EvaporationInuclCollider.cc
cvs update -j1.5 -j1.4 cascade/src/G4IBertini.cc
cvs update -j1.3 -j1.2 cascade/src/G4InuclElementaryParticle.cc
cvs update -j1.10 -j1.9 cascade/src/G4InuclEvaporation.cc
cvs update -j1.3 -j1.2 cascade/src/G4InuclNuclei.cc
cvs update -j1.4 -j1.3 cascade/src/G4InuclParticle.cc
cvs update -j1.17 -j1.16 cascade/src/G4InuclSpecialFunctions.cc
cvs update -j1.19 -j1.18 cascade/src/G4LorentzConvertor.cc
cvs update -j1.5 -j1.4 cascade/src/G4PreCompoundCascadeInterface.cc
cvs update -j1.4 -j1.3 cascade/src/G4PreCompoundInuclCollider.cc
Intermediate versions below had bindingEnergy changes from -05 re-applied
cvs update -j1.23 -j1.21 cascade/src/G4EquilibriumEvaporator.cc
cvs update -j1.22 -j1.20 cascade/src/G4Fissioner.cc
cvs update -j1.29 -j1.27 cascade/src/G4IntraNucleiCascader.cc
cvs update -j1.24 -j1.22 cascade/src/G4InuclCollider.cc
cvs update -j1.23 -j1.21 cascade/src/G4NonEquilibriumEvaporator.cc
cvs update -j1.38 -j1.36 cascade/src/G4NucleiModel.cc
G4ElementaryParticleCollider::particleSCMmomentumFor2to2: Restore new
parametrization of elastic scattering added by D.Write in hadr-casc-V09-03-06
cvs update -j1.47 -j1.45 cascade/src/G4ElementaryParticleCollider.cc
+ editing
05 Mar 2010 Gabriele Cosmo (hadr-casc-V09-03-07)
------------------------------------------------
- Reinstated fix in G4InteractionCase.hh for initialisation in constructor to
allow for porting on C++0x Standard.
07 Feb 2010 Dennis Wright (hadr-casc-V09-03-06)
-----------------------------------------------
- back out changes from tags V09-03-00 to V00-03-05 by restoring HEAD
to V09-02-11, and keeping the di-nucleon classes
- replace Bertini method bindingEnergy() with
G4NucleiProperties::GetBindingEnergy() in classes
G4IntraNuclearCascader, G4InuclCollider, G4NucleiModel, G4EquilibriumModel,
G4NonEquilibriumModel, G4Fissioner. Note that G4Fissioner still uses the
Bertini method bindingEnergyAsymptotic.
- G4ElementaryParticleCollider::particleSCMmomentumFor2to2
replace original (incorrect) pp, pn, nn 2-body to 2-body scattering angular
distributions with a new parameterization of elastic scattering data using
the sum of two exponentials
02 Feb 2010 Dennis Wright (hadr-casc-V09-03-05)
-----------------------------------------------
- replace all uses of bindingEnergy (local Bertini method) with the
Geant4 standard G4NucleiProperties::GetBindingEnergy(A,Z)
files modified:
G4IntraNucleiCascader.cc
G4InuclCollider.cc
G4NucleiModel.cc
G4EquilibriumEvaporator.cc
G4NonEquilibriumEvaporator.cc
G4Fissioner.cc
- note that G4Fissioner still uses Bertini method bindingEnergyAsymptotic
28 Jan 2010 Dennis Wright (hadr-casc-V09-03-04)
-----------------------------------------------
- fix unused variable warnings in G4InuclParticle.hh, .cc and
G4NonEquilibriumEvaporator.cc
26 Jan 2010 Michael Kelsey (hadr-casc-V09-03-03)
------------------------------------------------
All changes below within "cascade/" subdirectory:
- G4ParticleLargerBeta.hh: Fix to use of CVS "Name" tag; no code changes.
- G4CascadParticle: Replace the position std::vector<> with G4ThreeVector.
- G4NucleiModel: Replace all std::vector<> coordinates with G4ThreeVector,
and use vector math for computations.
Remove all use of G4CascadeMomentum (a simple container with a C-style
four-element array) with G4LorentzVector. This is a fairly invasive change,
since G4CascMom was used for all of the three- and four-vector operations
throughout the Bertini code:
include/G4CascadParticle.hh
include/G4CollisionOutput.hh
include/G4ElementaryParticleCollider.hh
include/G4InuclCollider.hh
include/G4InuclElementaryParticle.hh
include/G4InuclNuclei.hh
include/G4InuclParticle.hh
include/G4InuclSpecialFunctions.hh
include/G4LorentzConvertor.hh
src/G4BigBanger.cc
src/G4CascadParticle.cc
src/G4CascadeElasticInterface.cc
src/G4CascadeInterface.cc
src/G4CollisionOutput.cc
src/G4ElasticCascadeInterface.cc
src/G4ElementaryParticleCollider.cc
src/G4EquilibriumEvaporator.cc
src/G4EvaporationInuclCollider.cc
src/G4Fissioner.cc
src/G4IBertini.cc
src/G4IntraNucleiCascader.cc
src/G4InuclCollider.cc
src/G4InuclElementaryParticle.cc
src/G4InuclEvaporation.cc
src/G4InuclNuclei.cc
src/G4InuclParticle.cc
src/G4InuclSpecialFunctions.cc
src/G4LorentzConvertor.cc
src/G4NonEquilibriumEvaporator.cc
src/G4NucleiModel.cc
src/G4PreCompoundCascadeInterface.cc
src/G4PreCompoundInuclCollider.cc
The new code is not yet entirely "correct," since Bertini also does a lot of
operations by way of three-momentum, imposing masses (and hence energy
conservation) separately, after the fact.
20 Jan 2010 Gabriele Cosmo
--------------------------
- G4InteractionCase.hh: Minor fix in initialisation in constructor to
allow for porting on C++0x Standard.
20 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02)
------------------------------------------------
- G4LorentzConvertor.hh: Fix scm_momentum data member to be G4ThreeVector
(as used in previous versions) rather than G4LorentzVector.
NOTE: I have *retagged* cascade/include/G4LorentzConverter.hh and this
History file, rather than creating a new tag, since these are private
development only, not public releases.
12 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02)
------------------------------------------------
All changes below within "cascade/" subdirectory:
- G4CascadeMomentum: Replace use of static G4LV variables within functions
with mutable data member of object; this does introduce more memory
thrashing, but the plan is to get rid of the whole thing anyway. Improve
implicit casting and add assignment from G4LV.
- G4LorentzConverter: Change function signatures to accept G4LV as input,
using implicit cast to convert existing G4CascadeMomentum argument
passing. Use G4LV internally throughout, again using implicit cast to
return G4CascMom values. This substantially increases (temporarily!)
memory thrashing. Simplify ::rotate() functions to use G4LV and
G4ThreeVec operations rather than array index gymnastics. Move some
function implementations out of .hh file into .cc.
- G4ParticleLargerEkin.hh: Fix use of CVS "Name" tag. No code changes.
12 Jan 2010 Michael Kelsey (hadr-casc-V09-03-01)
------------------------------------------------
All changes below within "cascade/" subdirectory:
- G4ParticleLargerBeta, G4ParticleLargerEkin: Add additional operator()
which takes pointers (for future mods to reduce ctor/dtor cycling), and
fix ordering bug in beta sorting. Add debugging printout togged with
preprocessor flag.
- G4InuclParticle, G4InuclNuclei, G4InuclElementaryParticle: Rewrite to
carry G4DynamicParticle data member, and to instantiate particle
properties via G4ParticleDefinition subclasses. This is first stage in
eventually eliminating the G4InuclParticle stuff entirely in favor of
direct use of G4DynamicParticle for internal propagation.
These changes have been testing using debugging output on the production
(4.9.3) code compared to the above changes. |diff| shows mostly identical
results, with occasional ~1e-5 floating point differences.
08 Jan 2010 Michael Kelsey (hadr-casc-V09-03-00)
------------------------------------------------
All changes below within "cascade/" subdirectory:
- G4BertiniNuclearModel: REMOVE this class from the HEAD, and hopefully all
future tags. It is redundant with the G4NuclearModel class, and is not
used anywhere in the G4 distribtion; the latter is referenced in both
regular G4 code and in examples.
- G4Diproton, G4Dineutron, G4UnboundPN: New G4ParticleDefinition
subclasses, which implement the Bertini-specific dibaryon states. These
are not used anywhere as yet, but will be used in future modifications to
the G4InuclParticle subclasses.
- G4CascadeMomentum: Add interface to create from and cast to
G4LorentzVector. Will be used (in future) by G4InuclParticle modifications,
and provides a transition to eliminating this class entirely.
1 Dec 2009 Dennis Wright (hadr-casc-V09-02-11)
----------------------------------------------
- G4PionSampler, G4NucleonSampler: change loop variable in ctor from i to j
in order to satisfy Windows compiler
11 Nov 2009 Dennis Wright (hadr-casc-V09-02-10)
-----------------------------------------------
- G4CascadParticle, G4InuclElementaryParticle: add integer argument to ctor
to indicate which generation cascade particle belongs to.
Also change G4NucleiModel and G4BertiniNucleiModel to use this.
8 Oct 2009 Dennis Wright (hadr-casc-V09-02-09)
-----------------------------------------------
- G4PionSampler: use charge exchange cross section for pi0-p, go back
original Bertini pi0-p elastic partial cs. Update pi0 total cross
section accordingly. Improve fits to pi-p partial cs and update
pi- total cross sections.
- G4NucleiModel: update pi- and pi0 total cross sections
24 Sep 2009 Dennis Wright (hadr-casc-V09-02-08)
-----------------------------------------------
- add class G4NucleonSampler which replaces old pp, pn, and nn partial and
total cross sections also modify other classes which use them
- move large arrays which are instantiated at every call of frequently
used methods. They are now initialized once in constructors.
- G4CascadSpecialFunctions: put copy of total cross section method
in G4NucleiModel, also remove unneeded energy scale arrays
(now replaced with a new one)
- G4CascadeInterface: move instantiation of various collider classes
outside of loop, and put on stack instead of heap
- G4ElementaryParticleCollider: re-design to use G4NucleonSampler and
remove instantiation of large arrays from within loops in code
- G4NucleiModel: remove instatiation of large arrays from with loops,
add new total cross section sampling, remove use of all but one
energy scale
17 Sep 2009 Dennis Wright (hadr-casc-V09-02-07)
-----------------------------------------------
- G4PionSampler: remove large static arrays
- G4FinalStateSampler: remove static array pointer to G4 particle types
- G4ElementaryParticleCollider: clean up
4 Sep 2009 Dennis Wright (hadr-casc-V09-02-06)
----------------------------------------------
- add assignment operator to class G4CollisionOutput
31 Aug 2009 Dennis Wright (hadr-casc-V09-02-05)
-----------------------------------------------
- add class G4FinalStateSampler which was accidentally omitted from
the previous tag
25 Aug 2009 Dennis Wright (hadr-casc-V09-02-04)
-----------------------------------------------
- correct bug in particle ordering in G4PionSampler
- clean up dead code in G4NucleiModel and G4ElementaryParticleCollider
20 Aug 2009 Dennis Wright (hadr-casc-V09-02-03)
-----------------------------------------------
- create class G4PionSampler: samples partial cross sections, multiplicities
and final state particle types required for pi+, pi- and pi0 scattering
within a nucleus. This class uses re-evaluated pion partial cross sections
and includes production of strange particle pairs.
- G4CascadeSigmaPlusNChannel: correct sigma plus cross sections
- G4CascadSpecialFunctions: move pion, kaon, hyperon total cross sections
to this class
- G4ElementaryParticleCollider: re-write to use G4PionSampler class for
cross sections and multiplicities, remove method reChargering (now redundant)
15 Apr 2009 Dennis Wright (hadr-casc-V09-02-02)
-----------------------------------------------
- previous tag no longer used. Bring hadr-casc-V09-02-00 back to
HEAD and re-tag
21 Feb 2009 Dennis Wright (hadr-casc-V09-02-01)
-----------------------------------------------
- add printCrossSection method to G4CascadSpecialFunctions
- in GeElementaryParticleCollider, add high energy flag to distinguish
"string-like" behavior
- G4IntraNucleiCascader.cc - allow secondaries from HE interaction to
leave nucleus without interacting
- G4NucleiModel - get high_energy_interaction flag value from G4ElementaryParticleCollider
11 Feb 2009 V.Ivanchenko (hadr-casc-V09-02-00)
-----------------------------------------------
- set absorption coefficient 1.0 instead of 0.2 inside
G4CascadSpecialFunctions (D.Wright)
25 Nov 2008 Dennis Wright (hadr-casc-V09-01-10)
-----------------------------------------------
- fix multiplicity sampling in G4ElementaryParticleCollider::generateMultiplicity().
Now partial cross sections are normalized to the total cross section instead
of just the sum of 2-body to 6-body final state cross sections. Also fix
2-body cross sections above 7 GeV where they were too small.
Fix the same cross sections which appear in G4CascadSpecialFunctions.cc
21 Nov 2008 Dennis Wright (hadr-casc-V09-01-09)
-----------------------------------------------
- add some comments to cross section tables in G4CascadSpecialFunctions.cc
and G4ElementaryParticleCollider.cc
24 Oct 2008 Dennis Wright (hadr-casc-V09-01-08)
-----------------------------------------------
- replace GetAtomicMass() with GetNuclearMass() in cascade/G4InuclEvaporation
and evaporation/G4BertiniEvaporation
- V. Ivantchenko added name to G4CascadeInterface ("Bertini Cascade")
17 Oct 2008 Dennis Wright (hadr-casc-V09-01-07)
-----------------------------------------------
- added Coulomb barrier plus barrier penetration in G4IntraNucleiCascader.cc
27 Sep 2008 Dennis Wright (hadr-casc-V09-01-06)
-----------------------------------------------
- Fixed 4.3 compiler warnings for G4InuclElementaryParticle.hh by providing
initializers for particle type and mass
- Remove unused variables totscm, totlab in G4BigBanger.cc,
G4ElementaryParticleCollider.cc, and unused mom1 from G4InuclSpecialFunctions.cc
22 Sep 2008 Gabriele Cosmo (hadr-casc-V09-01-05)
------------------------------------------------
- Introduced simple wrapper class G4CascadeMomentum meant to replace usage
of std::vector<double> in the cascade code, to reduce memory allocations.
Courtesy of P.Elmer (princeton Univ.).
- Modified cascade code to make use of G4CascadeMomentum.
3 Sep 2008 Dennis Wright (hadr-casc-V09-01-04)
-----------------------------------------------
- G4ElementaryParticleCollider.cc: in method generateMultiplicity, remove
large_cut which increases multiplicity from 3 to 4 abruptly at 4 GeV
and above. This caused a sharp drop-off in the single pion spectra from
pH reactions. The effect in heavier nuclei is small.
29 Jun 2008 Dennis Wright (hadr-casc-V09-01-03)
-----------------------------------------------
- add changes made by M. Paterno, J. Kowalkowski, and M. Fischler (FNAL)
to speed up code. All G4Cascade***Channel classes and related code changed.
5 May 2008 Dennis Wright (hadr-casc-V09-01-02)
-----------------------------------------------
- retag hadr-casc-V09-csbug as hadr-casc-V09-01-02
30 Apr 2008 Dennis Wright (hadr-casc-V09-csbug)
-----------------------------------------------
- fix cross section bug in G4CascadSpecialFunctions that returned
low or zero total cross sections for pi-p, pi+n, np, and pi0
interactions
29 Apr 2008 Dennis Wright (hadr-casc-V09-01-01)
-----------------------------------------------
- bring tag hadr-casc-V09-01-coula to HEAD, make official tag
22 Apr 2008 Dennis Wright (hadr-casc-V09-01-param)
--------------------------------------------------
- changed pp, nn total cross section parameterization in
G4CascadSpecialFunctions to more closely reflect the PDG values (old one
was off by as much as a factor of 3.
3 Apr 2008 Dennis Wright (hadr-casc-V09-01-coula)
-------------------------------------------------
- removed Coulomb barrier from G4IntraNucleiCascader.cc (causes unphysical spike)
3 Apr 2008 Dennis Wright (hadr-casc-V09-01-coul)
------------------------------------------------
- Added Coulomb barrier in G4EquilibriumEvaporator.cc, G4IntraNucleiCascader.cc
17 Nov 2007 Dennis Wright (hadr-casc-V09-00-02)
-----------------------------------------------
- Fix angular distribution for nucleon-nucleon elastic scattering
above 2.8 GeV, by modifying G4ElementaryParticleCollider::getElasticCase
25 May 2007 Dennis Wright for Aatos Heikkinen (hadr-casc-V08-03-00)
-------------------------------------------------------------------
- implemented interfaces for pre-equilibrium and equilbrium evaporation
models
04 May 2007 Aatos Heikkinen (hadr-casc-V08-02-00)
-------------------------------------------------
- Added protection in G4ElementaryParticleCollider against negative
value to sqrt().
08 May 2006 Dennis Wright (hadr-casc-V08-00-00)
-----------------------------------------------
- cascade: remove G4BERTINI_KAON conditional assembly flags. Files
affected:
G4ElementaryParticleCollider.hh, cc
G4InuclElementaryParticle.hh
G4NucleiModel.hh, cc
G4CascadeInterface.cc
G4IntraNucleiCascader.cc
- cascade (Pekka Kaitaniemi): G4ElasticCascadeInterface: derive
from G4VIntraNuclearTransportModel instead of G4HadronElastic.
Check for case when no elastic scattering occurs. If so,
return original bullet and target.
24 Nov 2005 Dennis Wright (hadr-casc-V07-01-00)
----------------------------------------------
- cascade (bertini-V07-01-00 by Aatos Heikkinen)
elastic scattering interface added:
G4ElasticCascadeInterface.hh, .cc added
G4CascadeInterface.hh modified