Geant4 Cross Reference |
1 # Category hadr-casc History 2 3 See `CONTRIBUTING.rst` for details of **required** info/format for each entry, 4 which **must** added in reverse chronological order (newest at the top). 5 It must **not** be used as a substitute for writing good git commit messages! 6 7 ------------------------------------------------------------------------------- 8 9 ## 2024-08-21 Gabriele Cosmo (hadr-casc-V11-02-04) 10 - Fixed reported Coverity defect in G4NucleiModel for use of std::move(). 11 12 ## 2024-08-14 Gabriele Cosmo (hadr-casc-V11-02-03) 13 - Fixed reported Coverity defect in G4NucleiModel for unitialised data. 14 15 ## 2024-01-29 Dennis Wright (hadr-casc-V11-02-02) 16 - G4CascadeFinalStateAlgorithm::GenerateCosTheta() 17 For 4-body and higher-body generation of cosTheta, use direct sampling 18 of exp(1 - cosTheta) instead of previously used rejection method on 19 sinTheta * exp(-sinTheta). This removes the reflection about cosTheta = 0 20 that caused a symmetric double bump in the Feynman-x distribution. 21 22 ## 2024-01-24 Dennis Wright (hadr-casc-V11-02-01) 23 - G4InuclSpecialFunctions::inuclRndm() is just a wrapper of G4UniformRand() 24 remove method from class G4InuclSpecialFunctions and replace all 25 occurrences of inuclRndm() with G4UniformRand() in files 26 G4BigBanger.cc 27 G4CascadeFinalStateAlgorithm.cc 28 G4EquilibriumEvaporator.cc 29 G4Fissioner.cc 30 G4IntraNucleiCascader.cc 31 G4InuclParamAngDst.cc 32 G4InuclSpecialFunctions.cc 33 G4NonEquilibriumEvaporator.cc 34 G4NucleiModel.cc 35 36 ## 2023-12-11 Dennis Wright (hadr-casc-V11-02-00) 37 - improved calculation of di-nucleon density using Levinger quasi-deuteron 38 model proposed by Einar Elen (Lund) and Natalia Toro (SLAC) : 39 - add method G4NucleiModel::setDinucleonDensityScale() to calculate 40 correction factor to be applied to dinucleon densities 41 - modify method G4NucleiModel::getCurrentDensity() to apply this factor 42 43 ## 2023-11-17 Vladimir Ivantchenko (hadr-casc-V11-01-03) 44 - G4CascadeParamMessenger - fixed memory leak at exit and simplified the code. 45 46 ## 2023-04-17 Alberto Ribon (hadr-casc-V11-01-02) 47 - G4BigBanger : added protection in the method G4BigBanger::generateBangInSCM 48 to avoid very rare cases of unphysical negative energy of one of the 49 secondaries produced by the Bertini model. 50 (Note: this problem was never reproduced in our tests, but was reported by 51 ATLAS with Geant4 10.6; the secondaries with negative - both total 52 and kinetic - energy were always neutrons, produced by the internal 53 Bertini nuclear de-excitation, after the intra-nuclear cascade. 54 Many thanks to Mihaly Novak for providing detailed debugging 55 information!) 56 57 ## 2023-04-05 Dennis Wright (hadr-casc-V11-01-01) 58 - Fix coverity bug 60840: incorrect integer divide in fission part of 59 G4EquilibriumEvaporator::deExcite. Changed RHS to G4double. 60 61 ## 2023-03-14 Alberto Ribon (hadr-casc-V11-01-00) 62 Extended Bertini model to allow the use of Abla as alternative post-cascade 63 nuclear de-excitation (the default de-excitation remains unchanged). 64 There are two ways to set Abla as de-excitation for Bertini: 65 via C++ interface, by calling G4CascadeInterface::useAblaDeexcitation(); 66 via environmental variable, by setting G4CASCADE_USE_ABLA=1. 67 - G4AblaDeexcitation : new class that does the nuclear de-excitation, 68 after the Bertini cascade, by using the Abla model, and then tranform 69 the secondaries in Bertini objects. 70 - G4CascadeInterface : added the new method useAblaDeexcitation() which sets 71 Abla as nuclear de-excitation; this method can be called directly by the 72 user, or automatically in the constructor of the class when the flag 73 G4CascadeParameters::useAbla() is enabled. 74 - G4InuclCollider : added new method useAblaDeexcitation() which creates 75 an instance of the new class G4AblaDeexcitation. 76 - G4CascadeParameters : added a boolean flag that enables the Abla 77 de-dexcitation model in the case that the new environmental variable 78 G4CASCADE_USE_ABLA is set. 79 80 ## 2022-11-26 Gabriele Cosmo (hadr-casc-V11-00-05) 81 - Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. 82 83 ## 2022-11-13 Alberto Ribon (hadr-casc-V11-00-04) 84 (Two bug-fixes found and suggested by Sven Menke) 85 - G4NumIntTwoBodyAngDst.hh : corrected the incomplete initialization of the 86 vector angDist (fixing bug #2515). 87 - G4TwoBodyAngularDist.cc : corrected the charge exchange reaction of pion+ on 88 neutron producing in the final state pion0 and proton (fixing bug #2516) 89 90 ## 2022-08-26 Gabriele Cosmo (hadr-casc-V11-00-03) 91 - Attempt to fix compilation warning on gcc-12.1 for 92 G4CascadeParamMessenger::CreateDirectory(). 93 94 ## 2022-05-23 Gabriele Cosmo (hadr-casc-V11-00-02) 95 - Fixed wrong comparison between two arrays in findCrossSection(..) 96 for G4CascadePPChannel, G4CascadeNPChanneland G4CascadeNNChannel. 97 98 ## 2022-02-09 Gabriele Cosmo (hadr-casc-V11-00-01) 99 - Fixed compilation warnings on Intel compilers for unused variables. 100 - Use const iterator in G4InuclEvaporation::BreakItUp(..). 101 102 ## 2021-12-10 Ben Morgan (hadr-casc-V11-00-00) 103 - Change to new Markdown History format. 104 105 --- 106 107 # History entries prior to 11.0 108 109 4 August 2021 Alberto Ribon (hadr-casc-V10-07-04) 110 -------------------------------------------------- 111 - G4CascadeInterface : set the creator model ID for the secondaries 112 produced by Bertini model using the new version of G4PhysicsModelCatalog 113 114 29 June 2021 Gabriele Cosmo (hadr-casc-V10-07-03) 115 ------------------------------------------------- 116 - Fixed compilation warnings occurring when c++20 is enabled. 117 118 17 May 2021 Jonathan Madsen (hadr-casc-V10-07-02) 119 ------------------------------------------------- 120 - Fixed TLS usage of G4CascadeChannelTables and G4CascadeParameters 121 122 16 April 2021 Ben Morgan (hadr-casc-V10-07-01) 123 -------------------------------------------------- 124 - Migrate build to modular CMake API 125 126 13 April 2021 Alberto Ribon (hadr-casc-V10-07-00) 127 ----------------------------------------------------- 128 - GNUmakefile, sources.cmake : removed the subdirectories 129 hadronic/models/management and hadronic/models/util 130 (that have been now deleted, with their classes moved to 131 hadronic/util and hadronic/management). 132 Removed also the useless dependency to hadronic/process. 133 134 5 May 2020 Gunter Folger (hadr-casc-V10-06-04) 135 ----------------------------------------------------- 136 - Fix for clang10: confusing indentation caused by if 137 add {} around statements 138 139 26 February 2020 Dennis Wright (hadr-casc-V10-06-03) 140 ----------------------------------------------------- 141 - G4LightTargetCollider::collide() : avoid frequent energy conservation warning 142 from G4HadronicProcess by setting up "no interaction" final state below 143 threshold 144 145 13 January 2020 Dennis Wright (hadr-casc-V10-06-02) 146 ---------------------------------------------------- 147 - G4CascadeInterface.cc: fix memory leak by deleting ltcollider in class 148 dtor 149 150 10 January 2020 Michael Kelsey (hadr-casc-V10-06-01) 151 ----------------------------------------------------- 152 - G4CascadeParamMessenger.cc: Ensure that Bertini-specific commands get 153 added to /process/had/cascade/ directory, instead of /process/had. 154 Requires resetting cmdDir=0 between CreateDirectory() calls. 155 156 16 December 2019 Vladimir Ivanchenko (hadr-casc-V10-06-00) 157 ----------------------------------------------------------- 158 - G4CascadeCheckBalance: fixed outstanding problem of the interface 159 with native pre-compound model, which happens since in the 160 default de-excitation internal electron conversion become 161 enabled 162 163 7 November 2019 Dennis Wright (hadr-casc-V10-05-02) 164 ----------------------------------------------------- 165 - G4LightTargetCollider: fix crash when gamma energy below deuteron 166 disintegration threshold and improve exception handling 167 168 5 November 2019 Dennis Wright (hadr-casc-V10-05-01) 169 ----------------------------------------------------- 170 - new class G4LightTargetCollider to more accurately handle collisons 171 on p, d, t, 3He. Currently only gamma on protons and deuterons is 172 implemented. 173 174 29 May 2019 Dennis Wright (hadr-casc-V10-05-00) 175 ------------------------------------------------ 176 - fix bug found in biasing/B03 example due to FPE from unprotected sqrt 177 of pperp2 + qv - p1r*p1r in G4NucleiModel::boundaryTransition 178 179 19 November 2018 Dennis Wright (hadr-casc-V10-04-12) 180 ----------------------------------------------------- 181 - fix bug # 2096: non-conservation in precompound interface 182 Four problems fixed: 183 184 G4PreCompoundDeexcitation::deExcite: do not use const reference as 185 input to theDeExcitation->DeExcite(G4Fragment) because G4PreCompound 186 can change the fragment and upset the energy balance 187 188 G4CollisionOutput::getTotalCharge: subtract electron charges in case 189 of internal conversion in G4PreCompound 190 191 G4CascadeCheckBalance::collide(const G4Fragment& fragment, 192 G4CollisionOutput& output): 193 Convert fragment momentum given in MeV to GeV (Bertini units) 194 and remove electrom masses from energy balance when internal conversion 195 occurs 196 197 09 November 2018 Gabriele Cosmo (hadr-casc-V10-04-11) 198 ------------------------------------------------------ 199 - Fixed few printout typos. 200 201 25 October 2018 Makoto Asai (hadr-casc-V10-04-10) 202 -------------------------------------------------- 203 - G4CascadeParamMessenger.cc : add description to /process/had/ 204 directory. Addressing to bug report #2020. 205 206 27 September 2018 Dennis Wright (hadr-casc-V10-04-09) 207 ------------------------------------------------------- 208 - G4NucleiModel::boundaryTransition : fix by Natalia Toro (SLAC) to 209 prevent glancing incidence at shell boundaries from reflecting too 210 many times 211 212 19 September 2018 Dennis Wright (hadr-casc-V10-04-08) 213 ------------------------------------------------------- 214 - G4CascadeT11pizNChannel.cc, G4CascadeT31piNChannel.cc, 215 G4CascadeT33piNChannel.cc : re-order particle types in final state 216 arrays so that pion is first and nucleon is second. Two body final 217 state methods assume this. 218 219 - G4CascadeKminusNChannel.cc, G4CascadeKminusPChannel.cc, 220 G4CascadeKplusNChannel.cc, G4CascadeKplusPChannel.cc, 221 G4CascadeKzeroBarNChannel.cc, G4CascadeKzeroBarPChannel.cc, 222 G4CascadeKzeroNChannel.cc, G4CascadeKzeroPChannel.cc : 223 same as above but re-order only for two- and three-body final states. 224 225 - G4CascadeT1GamNChannel.cc : re-order final state particle types so that 226 mesons are first in two- and three-body cases 227 228 17 September 2018 Dennis Wright (hadr-casc-V10-04-07) 229 ------------------------------------------------------- 230 - G4NucleiModel: replace Kossov parameterization of gammaQDxsec with new 231 values coming from smooth line through deuteron photo-disintegration 232 data which include 2004 JLab data up to 3 GeV. 233 234 6 July 2018 Vladimir Ivanchenko (hadr-casc-V10-04-06) 235 ------------------------------------------------------ 236 - G4GDecay3 - fixed problem reported by CMS due to wrong kinematics 237 in the final state by removing loop check; adding protection 238 for low value of mother mass 239 240 7 June 2018 Dennis Wright (hadr-casc-V10-04-05) 241 -------------------------------------------------- 242 - G4CascadePPChannel, G4CascadeNPChannel, G4CascadeNNChannel: extend strange 243 pair production channels to 6, 7, 8 and 9-body final states 244 245 - G4CascadeT11pizNChannel.cc : fix qnum conservation problem in 8-body final 246 states 247 248 2 May 2018 Dennis Wright (hadr-casc-V10-04-04) 249 ------------------------------------------------- 250 - G4ElementaryParticleCollider 251 methods generateSCMpionAbsorption and 252 generateSCMmuonAbsorption did not produce correct nucleon pairs when 253 pion or muon was absorbed - both methods now re-written 254 255 quantum number conservation test added to method 256 collide(G4InuclParticle* bullet, G4InuclParticle* target, 257 G4CollisionOutput& output) 258 259 20 March 2018 Julia Yarba (hadr-casc-V10-04-03) 260 --------------------------------------------------- 261 - Fix implementation of nuclear_rad_2par configurable key (G4CascadeParamMessenger.cc) 262 263 6 March 2018 Dennis Wright (hadr-casc-V10-04-02) 264 --------------------------------------------------- 265 - G4CascadeT11pizNChannel.cc: extend strange pair production channels to 266 6,7,8 and 9 body final states 267 268 27 February 2018 Alberto Ribon (hadr-casc-V10-04-01) 269 ----------------------------------------------------- 270 - G4NucleiModel : replaced obsolete std::bind2nd with std::bind . 271 272 2 February 2018 Dennis Wright (hadr-casc-V10-04-00) 273 ----------------------------------------------------- 274 - Add strange pair production channels to list of 6, 7, 8 and 9-body 275 final states in classes G4CascadeT31piNChannel and G4CascadeT33piNChannel. 276 Modify template values accordingly in 277 G4CascadePiMinusNChannel.hh 278 G4CascadePiMinusPChannel.hh 279 G4CascadePiPlusNChannel.hh 280 G4CascadePiPlusPChannel.hh 281 282 27 November 2017 Dennis Wright (hadr-casc-V10-03-06) 283 ----------------------------------------------------- 284 - G4CascadeInterface::createBullet, G4CascadeInterface::ApplyYourself: 285 rotation to z-axis unnecessary and may 286 cause irreproducibility. Remove it according to bug report #1990. 287 288 20 October 2017 Tatsumi Koi (hadr-casc-V10-03-05) 289 ------------------------------------------------ 290 - G4CascadeParameters.cc FERMI_SCALE and RAD_TRAILING are added to changeable parameters from HDP 291 Lower and upper limits of changeable parameters form HDP are registered 292 293 6 October 2017 Tatsumi Koi (hadr-casc-V10-03-04) 294 ------------------------------------------------ 295 - G4CascadeParameters.cc Remove protection for using G4HadronicDeveloperParameters 296 297 5 October 2017 Tatsumi Koi (hadr-casc-V10-03-03) 298 ------------------------------------------------ 299 - Adding comment for BEST_PAR in G4CascadeParameters and test/README 300 301 22 May 2017 Dennis Wright (hadr-casc-V10-03-02) 302 ------------------------------------------------ 303 - G4ElementaryParticleCollider::generateSCMmuonAbsorption: fix rare seg fault 304 spotted and diagnosed by Ralf Ehrlich (mu2e/Virgina). Added line 305 particles.clear(); 306 if GetThreeBodyMomenta() returns no momenta. 307 308 1 May 2017 Tatsumi Koi (hadr-casc-V10-03-01) 309 --------------------------------------------------- 310 - G4CascadeParameters.cc: Use G4HadronicDeveloperParameters as a tool 311 for sharing parameters between developers and experienced users. 312 Need to set environment variable of "TEST_HDP" for testing the tool. 313 314 13 April 2017 Michael Kelsey (hadr-casc-V10-03-00) 315 --------------------------------------------------- 316 - G4CascadeCoalescence: Remove clusterHash() function and triedClusters 317 registry. Drop redundant calls of tryCluster() with subcombinatorics; all 318 combinations are handled, uniquely, in main loop over indices. Eliminates 319 significant memory usage seen with high-energy applications of BERT. 320 321 - test/clusterComb.cc, test/GNUmakefile: New standalone test to exercise 322 combinatoric behaviour of G4CascadeCoalescence (used in testing above 323 changes). 324 325 29 November 2016 Dennis Wright (hadr-casc-V10-02-05) 326 ----------------------------------------------------- 327 - G4InuclCollider::photonuclearOkay(): fix segfault reported by Daren Sawkey 328 in bug report #1883 329 330 6 October 2016 Dennis Wright (hadr-casc-V10-02-04) 331 --------------------------------------------------- 332 - G4EquilibriumEvaporator::deExcite: replace sampling of evaporation spectrum 333 with original Dostrovsky method 334 - paraMaker.cc: add comments 335 336 3 October 2016 Dennis Wright (hadr-casc-V10-02-03) 337 --------------------------------------------------- 338 Mike Kelsey added the lines 339 process->PreparePhysicsTable(*part); 340 process->BuildPhysicsTable(*part); 341 in unit test cascade/test/cascade.cc to configure RunManager event loop 342 343 30 September 2016 Dennis Wright (hadr-casc-V10-02-02) 344 ------------------------------------------------------ 345 - add 8- and 9-body final states to K-, K0 and K0b induced reactions. 346 Classes affected: G4CascadeKminusNChannel, G4CascadeKminusPChannel, 347 G4CascadeKzeroBarNChannel, G4CascadeKzeroBarPChannel, 348 G4CascadeKzeroNChannel, G4CascadeKzeroPChannel 349 350 14 March 2016 Dennis Wright (hadr-casc-V10-02-01) 351 -------------------------------------------------- 352 - G4InuclCollider.cc: re-instate getenv for photonuclearOkay(). This 353 method causes significant performance degradation and the physics needs 354 to be improved before it can made default 355 356 25 January 2016 Michael Kelsey (hadr-casc-V10-02-00) 357 ----------------------------------------------------- 358 - G4InuclCollider.cc: Remove envvar which enables "photonuclearOkay()" 359 test. This test will now be used by default, improving the match for 360 production of neutrons and protons in the GDR region. 361 362 6 November 2015 Dennis Wright (hadr-casc-V10-01-13) 363 ---------------------------------------------------- 364 - G4CascadeKplusNChannel: extend to 9-body final states and 32 GeV using same 365 energy bins as G4CascadeKplusPChannel 366 367 16 October 2015 V.Ivanchenko (hadr-casc-V10-01-12) 368 --------------------------------------------------- 369 - G4CascadeCoalescence.hh: Add #include "G4InuclElementaryParticle.hh", to 370 address compiler error from Cray (see Config HN 1764). 371 372 19 August 2015 V.Ivanchenko (hadr-casc-V10-01-11) 373 -------------------------------------------------- 374 - G4NucleiModel.cc - Randomize.hh header is included 375 376 13 July 2015 M. Kelsey (hadr-casc-V10-01-10) 377 --------------------------------------------- 378 - G4KaonSampler: Per D. Wright, modify to 30 bins, finely divided up to 1.5 379 GeV, very coarsely grained above 10 GeV. Binning optimized to isolate 380 various resonances in Kp and Kn spectra. 381 382 - G4CascadeKplusPChannel: Per D. Wright, use new G4KaonSampler binning, 383 with final states tabulated up to 9-body. Should dramatically improve 384 match to data. 385 386 26 June 2015 M. Kelsey (hadr-casc-V10-01-09) 387 --------------------------------------------- 388 - G4CascadeCheckBalance.cc: Address Coverity #60845-60850, with incorrect 389 logical expression in diagnostic output. 390 391 22 June 2015 M. Kelsey (hadr-casc-V10-01-08) 392 --------------------------------------------- 393 Follow new G4cbrt(int) by moving powers of Z and A out of argument. Lookup 394 table only covers real nuclei (up to about 300 or so). 395 396 G4EquilibriumEvaporator.cc 397 G4Fissioner.cc 398 bindingEnergyAsymptotic.cc 399 400 22 June 2015 M. Kelsey (hadr-casc-V10-01-07) 401 --------------------------------------------- 402 Per request from G. Cosmo and A. Dotti, migrate the five "TLS" local buffers 403 to use the new G4AutoDelete mechanism. This removes them as spurious memory 404 leaks at end of job. 405 406 G4InuclSpecialFunctions.cc 407 G4NucleiModel.cc 408 409 19 June 2015 M. Kelsey (hadr-casc-V10-01-06) 410 --------------------------------------------- 411 Per request from A. Ribon, migrate few remaining instances of std::pow, 412 std::log, and std::exp to Geant4's VDT equivalents (G4Pow, G4Log, G4Exp). 413 Only G4Pow is problematic, requiring use of singleton pointer instead of 414 direct replacement. 415 416 G4CascadeFinalStateAlgorithm.cc 417 G4FissionStore.cc 418 G4Fissioner.cc 419 G4IntraNucleiCascader.cc 420 421 - G4InuclSpecialFunctions: As above, and define G4cbrt(G4int) which uses 422 G4Pow::Z13() with lookup table for integer arguments (e.g. Z, A, N). 423 424 8 June 2015 M. Kelsey (hadr-casc-V10-01-05) 425 -------------------------------------------- 426 Per request from A. Ribon and ATLAS, mark every while loop in code with 427 special comment string authenticating that it terminates. 428 429 G4BigBanger.cc 430 G4CascadeFinalStateAlgorithm.cc 431 G4CascadeInterface.cc 432 G4ElementaryParticleCollider.cc 433 G4EquilibriumEvaporator.cc 434 G4FissionStore.cc 435 G4Fissioner.cc 436 G4GDecay3.cc 437 G4IntraNucleiCascader.cc 438 G4InuclCollider.cc 439 G4InuclNuclei.cc 440 G4InuclParamAngDst.cc 441 G4NonEquilibriumEvaporator.cc 442 G4NucleiModel.cc 443 444 23 March 2015 M. Kelsey (hadr-casc-V10-01-04) 445 ---------------------------------------------- 446 - G4CascadeInterface.cc: Call static Initialize() function in constructor, 447 for sequential builds or master thread. Requires global-V10-01-08. 448 449 23 April 2015 A. Ribon (hadr-casc-V10-01-03) 450 --------------------------------------------- 451 - G4PreCompoundDeexcitation: delete precompound products (i.e. 452 G4ReactionProduct objects) before cleaning and deleting their 453 vector container. 454 455 23 March 2015 M. Kelsey 456 ------------------------ 457 - G4KaonSampler, G4HyperonSampler: NEW Copies of G4KaonHypSampler, which 458 will eventually diverge with different energy binning, in order to extend 459 kaon and hyperon final state tables to ~30 GeV. 460 461 23 February 2015 M. Kelsey (hadr-casc-V10-01-02) 462 ------------------------------------------------- 463 - G4InuclCollider: Speed up new photonuclearOkay() filter by checking final 464 state nucleus vs. target directly, instead of looping over secondaries. 465 Filter is still disabled behind G4CASCADE_CHECK_PHOTONUCLEAR envvar. 466 467 2 February 2015 M. Kelsey (hadr-casc-V10-01-01) 468 ------------------------------------------------ 469 - G4InuclCollider: Add special end-of-cascade test to require low-energy 470 photo-nuclear and lepto-nuclear events to produce at least one non-gamma 471 secondary. Currently hidden behind G4CASCADE_CHECK_PHOTONUCLEAR envvar. 472 Will address bug #1680 to increase neutron yield around the giant dipole 473 resonance, without model changes. 474 475 11 December 2014 M. Kelsey (hadr-casc-V10-01-00) 476 ------------------------------------------------- 477 - G4CascadeParameters, G4CascadeParamMessenger: Make G4CASCADE_PIN_ABSORPTION 478 a double, specifying a probability for absorption. Requirement is 479 less-than, not less-than-or-equal, so 0. suppresses aborption in all 480 cases. 481 482 - G4ElementaryParticleCollider.cc: Use PIN_ABSORPTION value as probability. 483 Fix boosting of pion-nucleon absorption; recoil nucleus should not be 484 involved in boost. 485 486 11 December 2014 M. Kelsey 487 --------------------------- 488 - G4CollisionOutput: Move "hard tuning" from setOnShell() to separate 489 function. Add code in setOnShell() to do "hard tuning" of quasi-elastic, 490 recomputing momentum for single particle and nuclear recoil directly. 491 492 11 December 2014 M. Kelsey 493 --------------------------- 494 - G4IntraNucleiCascader: Add function to identify non-interacting particles 495 (e.g., neutrinos); in generateCascade(), move such particles directly to 496 output list, rather than transporting them through the nucleus. This 497 deals with the "trapped neutrino" case (below) more efficiently. 498 499 1 December 2014 M. Kelsey (hadr-casc-V10-00-20) 500 ------------------------------------------------ 501 - G4CascadParticle.cc: For stopped particles (zero path length), if at core 502 of nucleus switch "movingIn" flag to false to particle will be forced to 503 escape. Protects against very rare infinite loop in mu- capture (nu_mu 504 produced with tiny momentum, gets stuck in nucleus zone 0). 505 506 1 December 2014 M. Kelsey (hadr-casc-V10-00-19) 507 ------------------------------------------------ 508 - G4ElementaryParticleCollider.cc: In muon absorption, check return from 509 G4GDecay3 for null vector; report no-collision status and return. 510 511 - G4GDecay3.cc: Fix typo in error report to use correct class name. 512 513 21 November 2014 M. Kelsey (hadr-casc-V10-00-18) 514 ------------------------------------------------- 515 Per A. Dotti, introduce G4AutoDelete for all singleton classes to avoid 516 end-of-job memory leaks: 517 518 G4CascadeChannelTables.cc,.hh (also make dtor public) 519 G4CascadeParameters.cc 520 G4MultiBodyMomentumDist.cc 521 G4TwoBodyAngularDist.cc 522 523 21 November 2014 M. Kelsey (hadr-casc-V10-00-17) 524 ------------------------------------------------- 525 - G4PreCompoundDeexcitation.cc: Per V.I., fix memory leak on exit by passing 526 excitation handler through to PreCompound. 527 528 19 November 2014 M. Kelsey (hadr-casc-V10-00-16) 529 ------------------------------------------------- 530 - G4CascadeInterface.cc: Fix parentheses in retryInelasticNucleus() 531 expression for conditional-compilation flag (does not affect defaults). 532 533 18 November 2014 M. Kelsey (hadr-casc-V10-00-15) 534 ------------------------------------------------- 535 - G4CascadeInterface.cc: Fix possible infinite-loop condition where (nTries 536 >= maxTries) and momentum balance fails, by regrouping conditions in 537 retryInelasticNucleus(). 538 539 11 November 2014 M. Kelsey (hadr-casc-V10-00-14) 540 ------------------------------------------------- 541 - G4CascadeParameters.cc: Revert default changes in V10-00-12 tag: turn 542 off phase-space, trailing-effect, and PreCompound. 543 544 - G4InuclCollider.cc: Replace G4Fragment::GetA() with GetA_asInt(). 545 546 - G4ElementaryParticleCollider.cc: Improve optional pion-nucleon 547 absorption. NOTE: This is DISABLED by default; used for studies of pion 548 stopping. 549 550 - G4NucleiModel.cc: Initialize local p1r variable in declaration. 551 552 30 October 2014 M. Kelsey (hadr-casc-V10-00-13) 553 ------------------------------------------------ 554 - G4CascadeParameters, G4CascadeParamMessenger: Add flag to enable 555 absorbing pion on a single nucleon. See G4EPCollider below for details. 556 557 - G4ElementaryParticleCollider: Add support for absorbing a pion with a 558 single nucleon (via a charge exchange interaction, e.g. pi- p -> n), with 559 momentum conservation handled by recoiling against the nucleus. This is 560 intended to improve the match to data for pi- capture. 561 562 - G4NucleiModel.cc: In boundaryTransition(), switch sign of "dv" so that 563 particle sees a barrier (next_zone potential > current potential) as 564 positive. In generateParticleFate(), pass (A,Z) to EPCollider for 565 possible nuclear-recoil calculations. 566 567 - G4CascadeCheckBalance.cc: Per V.Ivantchenko, use G4Fragment::GetZ_asInt(), 568 GetZ_asInt(). Should have been done long ago. 569 570 1 October 2014 M. Kelsey (hadr-casc-V10-00-12) 571 ----------------------------------------------- 572 - G4CascadeCheckBalance: Change ctor arg from "const char*" to "const 573 G4String&" to avoid memory deallocation problems. 574 575 - G4CascadeColliderBase: Change ctor arg from "const char*" to "const 576 G4String&" to avoid memory deallocation problems. 577 578 - G4CascadeInterface.cc: Call both usePreCompoundDeexcitation() and 579 useCascadeDeexcitation() in ctor, with if-else. 580 581 - G4CascadeParameters.cc: Make PreCompound, phase space, trailing effect, 582 and light-ion clustering active by default. User must set envvars to "0" 583 to disable. 584 585 - G4InuclCollider.cc: Make PreCompound the default in ctor. 586 587 - G4VCascadeCollider: Change ctor arg from "const char*" to "const 588 G4String&" to avoid memory deallocation problems. 589 590 - G4VCascadeDeexcitation.hh: Change ctor arg from "const char*" to "const 591 G4String&" to avoid memory deallocation problems. 592 593 27 June 2014 M. Kelsey (hadr-casc-V10-00-11) 594 --------------------------------------------- 595 - G4CascadeFinalStateAlgorithm.cc: Address bug #1558, using ".c_str()" in 596 diagnostic outputs, to avoid IBM XL compiler error. 597 598 23 May 2014 M. Kelsey (hadr-casc-V10-00-10) 599 -------------------------------------------- 600 - G4InuclNuclei.cc: Avoid FPE in setExcitationEnergy() for zero Ekin. This 601 must be backported to 9.6 and 10.0. 602 603 9 May 2014 M. Kelsey (hadr-casc-V10-00-09) 604 ------------------------------------------- 605 - G4PreCompoundDeexcitation.cc: Fix mistake in copying example code; created 606 a local copy instead of filling the data member. 607 608 9 May 2014 M. Kelsey (hadr-casc-V10-00-08) 609 ------------------------------------------- 610 - 4PreCompoundDeexcitation.cc: Per V.Ivanchenko, attempt to use shared 611 instance of PreCompound by fetching from hadronic registry. Only if that 612 fails should a local instance be created. 613 614 9 April 2014 M. Kelsey (hadr-casc-V10-00-07) 615 --------------------------------------------- 616 - G4IntraNucleiCascader.cc: Use const G4PD*. 617 - G4InuclEvaporation.cc: Remove temporary const_cast<G4PD*> (see 10 Mar). 618 619 12 March 2014 M. Kelsey (hadr-casc-V10-00-06) 620 ---------------------------------------------- 621 - G4CascadeParameters: Copy Gabriele's version of the singleton here, from 622 the 9.6-patch-03 branch. 623 624 10 March 2014 M. Kelsey (hadr-casc-V10-00-05) 625 ---------------------------------------------- 626 - G4CollisionOutput.cc: Use const G4PD* for G4HadronicProduct secondaries. 627 628 - G4InuclParticle: Apply "const G4PD*" everywhere for consistency with 629 hadr-util updates. 630 631 - G4InuclElementaryParticle: Apply "const G4PD*" everywhere for consistency 632 with hadr-util updates. 633 634 - G4InculEvaporation.cc: TEMPORARY: Use const_cast<G4PD*> to access ctor 635 of G4Fragment, until new hadr-util code is public. 636 637 10 March 2014 M. Kelsey (hadr-casc-V10-00-04) 638 ---------------------------------------------- 639 - G4IntraNucleiCascader.cc: Fix bug #1584, memory leak in secondaries. 640 641 10 March 2014 M. Kelsey (hadr-casc-V10-00-03) 642 ---------------------------------------------- 643 - G4CascadeParameters.cc: Restore original 10.0 version, because January 644 mods caused unexpected side effects in build, which aren't being fixed. 645 646 29 January 2014 G.Folger not tagged 647 ------------------------------------- 648 - Removed cascade/utils from cascade/sources.cmake 649 650 16 January 2014 M.Kelsey (hadr-casc-V10-00-02) 651 ----------------------------------------------- 652 - G4CascadeInterface: Move static member into const data, initialize in 653 ctor. This avoids calling G4CascadeParameters::Instance() before main(). 654 655 - G4CascadeCoalescence: Move static members into const data, initialize in 656 ctor. This avoids calling G4CascadeParameters::Instance() before main(). 657 658 - G4NucleiModel: Move static members which use envvars into const data, 659 initialize in ctors (with copy-and-paste code blocks). This avoids 660 calling G4CascadeParameters::Instance() before main(). 661 662 7 January 2014 Dennis Wright (hadr-casc-V10-00-01) 663 --------------------------------------------------- 664 - added new pi-nucleon 2-body angular distributions: 665 G4PipP2PipPAngDst, G4PimP2PimPAngDst, G4Pi0P2Pi0PAngDst and G4PimP2Pi0NAngDst. 666 Below 2.6 GeV, distributions taken from SAID phase shift calculations with 667 Coulomb phase removed. Above 2.6 GeV, taken from data. 668 - also modified: G4TwoBodyAngularDist, sources.cmake 669 670 6 January 2014 M.Kelsey (hadr-casc-V10-00-00) 671 ---------------------------------------------- 672 - G4CascadeParameters.cc: Improve singleton initialization by moving static 673 instance to pointer in file scope (anon namespace), check for null pointer 674 in Instance() call. Drop use of messenger (temporarily) since it's not 675 thread safe. This change needs to be backported to 9.6 and 10.0. 676 677 2 October 2013 V.Ivanchenko (hadr-casc-V09-06-52) 678 ---------------------------------------------------- 679 - G4NonEquilibriumEvaporator.hh - added forward declaration of G4Pow, 680 because after the revision of G4Pow cascade is not compiling anymore 681 682 1 October 2013 Michael Kelsey (hadr-casc-V09-06-51) 683 ---------------------------------------------------- 684 - G4NucleiModel: Make gammaQDinterp a regular data member, to avoid data 685 race condition with shared (const but mutable) object. 686 687 - G4EquilibriumEvaporator: Make QFinterp a regular data member, to avoid data 688 race condition with shared (const but mutable) object. 689 690 25 September 2013 Michael Kelsey (hadr-casc-V09-06-50) 691 ------------------------------------------------------- 692 - G4NucleiModel: Remove G4Pow introduced below; replace usage with simple 693 "*= 2" inside loop. 694 695 24 September 2013 Michael Kelsey (hadr-casc-V09-06-49) 696 ------------------------------------------------------- 697 Replace usage of std::log, std::exp, and std::pow with GEANT4 internal 698 functions with faster polynomial implementations. 699 700 G4BigBanger.cc 701 G4CascadeFinalStateAlgorithm.cc 702 G4EquilibriumEvaporator.cc 703 G4InuclParamMomDst.cc 704 G4InuclSpecialFunctions.cc 705 G4NonEquilibriumEvaporator.cc 706 G4NonEquilibriumEvaporator.hh 707 G4NucleiModel.cc 708 G4NucleiModel.hh 709 G4NumIntTwoBodyAngDst.icc 710 G4ParamExpTwoBodyAngDst.icc 711 712 29 August 2013 Michael Kelsey (hadr-casc-V09-06-48) 713 ---------------------------------------------------- 714 Address Coverity #52158 and 52161. 715 716 - G4InuclSpecialFunctions.hh: Add copy action declarations to paraMaker. 717 718 8 August 2013 Michael Kelsey (hadr-casc-V09-06-47) 719 --------------------------------------------------- 720 More thread-safety fixes: 721 722 - G4InuclSpecialFunctions.hh: Replace paraMaker[Truncated] functions with 723 class object, in order to use thread-locally within evaporators. 724 725 - paraMaker.cc: Move function code into new class member functions. 726 727 - G4*EquilibriumEvaporator: Add data member for new "paraMaker" object. 728 729 Per A. Dotti, move local statics to file scope to avoid thread collisions: 730 731 - G4CascadeDeexciteBase.cc: Move zero vector. 732 733 - G4InuclParticle.cc: Move "G4DynamicParticle empty". 734 735 - G4NucleiModel.cc: Move static G4InuclElementaryParticle constructions to 736 data members. 737 738 4 August 2013 Michael Kelsey (hadr-casc-V09-06-46) 739 --------------------------------------------------- 740 - G4CascadeInterface.cc: Fix bug #1513, replacing "Z=1" with "Z==1" in 741 boolean ternary operation. 742 743 18 July 2013 Michael Kelsey (hadr-casc-V09-06-45) 744 -------------------------------------------------- 745 - G4CascadeDeexciteBase.cc: Address Coverity #51934, unitialized data 746 members. 747 748 - Added use of "Id" and "Name" keywords to many new files which were missing 749 them. 750 751 11 July 2013 Michael Kelsey 752 ---------------------------- 753 - G4CascadeFinalStateAlgorithm: Replace name "difr_const" with "oneOverE". 754 755 5 July 2013 Michael Kelsey (hadr-casc-V09-06-44) 756 ------------------------------------------------- 757 - G4InuclParticleNames.hh: Provide particle identification functions, 758 equivalent to those in G4InuclElementaryParticle, for direct use of type 759 codes. 760 761 - G4InuclElementaryParticle.hh: Replace identification functions with calls 762 through to new G4InuclParticleNames functions. 763 764 3 July 2013 Michael Kelsey (hadr-casc-V09-06-43) 765 ------------------------------------------------- 766 - G4CascadeFinalStateAlgorithm: Add Kopylov N-body phase space generation, 767 with function code copied from G4HadPhaseSpaceKopylov. Use with runtime 768 envvar flag (G4CASCADE_USE_PHASESPACE) in place of multi-parameter 3-body 769 and 4-body generators. Two-body distributions are not changed. 770 771 - G4CascadeParameters, G4CascadeParamMessenger: Add new envvar, 772 G4CASCADE_USE_PHASESPACE, and associated functions, to switch between 773 multiparameter and Kopylov N-body generators. 774 775 2 July 2013 Michael Kelsey 776 --------------------------- 777 - G4NucleiModel.cc: Minor tweaks: generateInteractionLength() now returns 778 "large" (1000.) instead of input path length when calculations fail; this 779 eliminates the effect of "spath < path" vs. "spath <= path" comparisons. 780 For dibaryon absorption, use sum of invMFPs, not average. Small 781 improvements to some diagnostic messages. 782 783 28 June 2013 Michael Kelsey (hadr-casc-V09-06-42) 784 -------------------------------------------------- 785 PROBLEM: Code committed below did not include last round of changes to 786 support multiple G4Fragments from G4Fissioner. Those were lost accidentally 787 during directory manipulation on my local disk. 788 789 - G4CascadeDeexciteBase: Add makeFragment() without momentum for at-rest 790 nuclei. 791 792 - G4Fissioner: Remove local G4InuclNuclei vector; create fission fragments as 793 G4Fragments directly into output buffer. 794 795 - G4CollisionOutput: Replace single recoil fragment with list; apply 796 associated changes throughout support functions. 797 798 - G4EquilibriumEvaporator.cc: Use G4Fragments output from G4Fissioner. 799 800 - G4CascadeDeexcitation.cc: Add printing of intermediate outputs from each 801 de-excitation stage. 802 803 28 June 2013 Michael Kelsey (hadr-casc-V09-06-41) 804 -------------------------------------------------- 805 Reorganize de-excitation modules to use G4Fragment throughout process. Only 806 final ground-state nucleus will be instantiated as a G4InuclNuclei object. 807 This should substantially reduce the load on G4IonTable in MT operations. 808 809 - G4CascadeCheckBalance: Replace interface for "G4Fissioner" with version 810 which takes G4Fragments for target and output. 811 812 - G4CascadeColliderBase: Move explosion() functions and G4Fragment-related 813 valiateOutput() functions to new G4CascadeDeexciteBase. 814 815 - G4CascadeDeexciteBase: NEW concrete subclass of G4VCascadeDeexcitation. 816 Takes over "operational" support from G4CascadeColliderBase, including 817 explosion() functions, local copy of G4CascadeCheckBalance, and 818 conservation checking functions. Provides utilities to extract common 819 data from input G4Fragment for all modules, and to construct a G4Fragment. 820 821 - G4CascadeDeexcitation: Inherit from G4CascadeDeexciteBase. 822 823 - G4PreCompoundDeexcitation: Inherit from G4CascadeDeexciteBase. 824 825 - G4VCascadeDeexcitation: Inherit directly from G4VCascadeCollider. 826 827 - G4ExitonConfiguration: Add interface to copy from G4Fragment. 828 829 - G4EvaporationInuclCollider, G4NonEquilibriumEvaporator, 830 G4BigBanger, G4Fissioner, G4EquilibriumEvaporator: Move all to inherit 831 from G4CascadeDeexciteBase, replace collide() with deExcite(), use 832 G4Fragment in place of G4InuclNuclei everywhere except final ground-state 833 output. 834 835 - sources.cmake: Add G4CascadeDeexciteBase.hh and .cc. 836 837 28 June 2013 Michael Kelsey (hadr-casc-V09-06-40) 838 -------------------------------------------------- 839 Improve encapsulation of pion and muon absorption through dibaryons. 840 841 - G4NucleiModel: Add optional argument to useQuasiDeuteron() (fixed spelling) 842 to take dibaryon code, validate charge-exchange interactions. 843 844 - G4ElementaryParticleCollider: Add function to split dibaryon into 845 component particle types; use G4NM::useQuasiDeuteron() for sanity checks 846 instead of nested if-blocks. 847 848 28 June 2013 Michael Kelsey (hadr-casc-V09-06-39) 849 -------------------------------------------------- 850 Address Coverity 37230 and 37385. 851 852 - G4CascadeInterface.hh: Add unimplemented declarations for copy operations. 853 854 27 June 2013 Michael Kelsey (hadr-casc-V09-06-38) 855 -------------------------------------------------- 856 - G4NucleiModel.cc: Minor tweak: change "spath==0." test to "path==0.", to 857 check actual path length (equivalent to zero-momentum), rather than 858 generated random value. 859 860 - G4InuclParticleNames: Add functions to convert enum values to strings, 861 for diagnostic messages. New .cc file required for implementation. 862 863 - G4CascadeData.icc: For diagnostics, use new enum-to-string function, add 864 explicit space between xsec values, and print only 10 values per line. 865 866 - G4CascadeInterpolator.icc: For diagnostics, change output to setw(6), and 867 print only 10 values per line. 868 869 - sources.cmake: Add G4InuclParticleNames.cc. 870 871 21 June 2013 Michael Kelsey (hadr-casc-V09-06-37) 872 -------------------------------------------------- 873 - G4VCascadeDeexcitation: Disable collide() interface, with implementation 874 which throws exception when called. Subclasses will use deExcite() 875 interface, with a const-reference, directly (creating a G4InuclNuclei only 876 if necessary). 877 878 - G4CascadeDeexcitation: Remove collide() interface. Move code into 879 deExcite(), and create temporary G4InucleNuclei (with reusable buffer) as 880 needed. Add verbosity setting function. 881 882 - G4PreCompoundDeexcitation: Remove collide() interface; code uses 883 G4Fragment directly via deExcite(). 884 885 - G4CascadeCheckBalance: Add interface to take G4Fragment initial state. 886 887 - G4CascadeColliderBase: Change explosion() to take const-ref G4Fragment. 888 Use new CheckBalance(G4Fragment) interface in validateOutput(). 889 890 - G4EquilibriumEvaporator.hh: Change explosion() call-through to take 891 const-ref G4Fragment. 892 893 - G4InuclCollider.cc: Use G4Fragment interface to de-excitation modules and 894 validateOutput(). 895 896 21 June 2013 Michael Kelsey (hadr-casc-V09-06-36) 897 -------------------------------------------------- 898 - G4CascadeParameters: Add new flag to perform internal conservation checks, 899 replacing compile-time G4CASCADE_CHECK_ECONS preprocessor directive. 900 901 - G4CascadeParamMessenger: Add macro commands for USE_3BODYMOM and CHECK_ECONS 902 parameter flags. 903 904 - G4CascadeColliderBase: Remove doConservationChecks flag. Use run-time 905 flag (above) to conditionally instantiate CheckBalance, test pointer 906 before use. 907 908 - G4EquilibriumEvaporator: Remove turning-off of conservation checks after 909 fission. Follows removal of flag from G4CascadeColliderBase. 910 911 - GNUmakefile: Remove G4CASCADE_CHECK_ECONS preprocessor directive. Envvar 912 will be mapped to run-time parameter (above). 913 914 20 June 2013 Michael Kelsey (hadr-casc-V09-06-35) 915 -------------------------------------------------- 916 Address numerous Coverity warnings which have build up since November 2011. 917 No modifications to working code were required. 918 919 G4BigBanger.hh G4InuclCollider.hh 920 G4CascadeCheckBalance.hh G4InuclNuclei.cc 921 G4CascadeColliderBase.hh G4InuclParticle.cc 922 G4CascadeDeexcitation.hh G4MultiBodyMomentumDist.hh 923 G4CascadeInterface.cc G4NonEquilibriumEvaporator.hh 924 G4CascadeRecoilMaker.hh G4NumIntTwoBodyAngDst.hh,.icc 925 G4ElementaryParticleCollider.hh G4ParamExpTwoBodyAngDst.icc 926 G4EquilibriumEvaporator.hh G4PreCompoundDeexcitation.hh 927 G4EvaporationInuclCollider.hh G4TwoBodyAngularDist.hh 928 G4Fissioner.hh G4VCascadeCollider.hh 929 G4GDecay3.cc G4VCascadeDeexcitation.hh 930 G4IntraNucleiCascader.hh 931 932 19 June 2013 Michael Kelsey (hadr-casc-V09-06-34) 933 -------------------------------------------------- 934 - G4TwoBodyAngularDist.hh, G4MultiBodyMomentumDist.hh: Replace use of 935 "theInstance" with calls to "GetInstance()" to ensure instantiation in MT 936 environment. 937 938 19 June 2013 Michael Kelsey (hadr-casc-V09-06-33) 939 -------------------------------------------------- 940 - G4TwoBodyAngularDist, G4MultiBodyMomentumDist: Fix thread collisions 941 in MT operation by changing singleton instances from "static const" to 942 "static G4ThreadLocal" pointers. GetInstance() instantiates the pointer 943 on first call (per thread). C.f. G4CascadeChannelTables. 944 945 19 June 2013 Alberto Ribon (hadr-casc-V09-06-32) 946 -------------------------------------------------- 947 - G4NucleiModel.cc: fixed rare cases of non-reproducibility in the 948 method generateParticleFate. The members current_nucl1 and 949 current_nucl2 were not properly initialized in the case that 950 the interaction-partners list has one single element. 951 952 12 June 2013 Michael Kelsey (hadr-casc-V09-06-31) 953 -------------------------------------------------- 954 Bug fix for validation problems seen leading up to 10.0-beta release. 955 956 - G4NucleiModel.cc: Undo change to test "spath<=path" (V09-06-25); this 957 caused all tested nucleons to be accepted for interaction, incorrectly. 958 Replace with explicit test on "spath==0." to address at-rest particles. 959 960 - G4CascadeFinalStateAlgorithm: Split FillDirections() into separate 961 functions for three- and many-body states, to restore old algorithm. 962 Three body throws the _last_ particle's direction, then computes recoils, 963 while many-body throws the first N-2 directions. 964 965 04 June 2013 Alberto Ribon (hadr-casc-V09-06-30) 966 ------------------------------------------------- 967 - G4InuclNuclei.cc: Fix access to ions via the IonTable class. 968 969 24 May 2013 Michael Kelsey (hadr-casc-V09-06-29) 970 ------------------------------------------------- 971 - G4NucleiModel: Continue trying to resolve FPE errors with inf and NaN. 972 Improve bounds checking on zone value passed to inverseMFP; move "large" 973 and "small" cutoffs to static const, set globally. 974 975 23 May 2013 Michael Kelsey (hadr-casc-V09-06-28) 976 ------------------------------------------------- 977 - G4NucleiModel.cc: Fix initialization of dummy_convertor after setting 978 bullet and target momenta. For stopped particle outside nucleus, reset 979 "zone" value to outermost zone (avoid out-of-bounds accesses). 980 981 22 May 2013 Michael Kelsey (hadr-casc-V09-06-27) 982 ------------------------------------------------- 983 - G4ElementaryParticleCollider.cc: Add protection if N-body generator fails 984 after too many retries. On Windows, out-of-bounds error was (correctly) 985 thrown. 986 987 - G4ParticleLargerEkin.hh, G4ParticleLargerBeta.hh: Change ">=" to ">" in 988 both cases, to avoid error in (extremely rare) case that both inputs are 989 identical. With floats, this is a ~2^-64 probability, but a Windows test 990 job managed to catch it. 991 992 21 May 2013 Michael Kelsey (hadr-casc-V09-06-26) 993 ------------------------------------------------- 994 - sources.cmake: Added G4PP2PPAngDst. 995 996 20 May 2013 Dennis Wright 997 -------------------------- 998 - added class G4PP2PPAngDst, which contains elastic pp and nn angular 999 distributions generated from numerically integrated SAID cross sections 1000 and pp scattering data. Below 2.75 GeV SAID calculations were used with 1001 Coulomb interactions turned off. Above 2.75 GeV pp scattering data is used. 1002 1003 Files modified: G4TwoBodyAngularDist.hh, .cc 1004 1005 11 May 2013 Michael Kelsey (hadr-casc-V09-06-25) 1006 ------------------------------------------------- 1007 - G4NucleiModel.cc: Protections for at-rest particles (muon capture): In 1008 choosePointAlongTraj() set phat=(0,0,1); in generateInteractionPartners() 1009 apply zero-path exit only for finite momentum. Move choosePointAlongTraj 1010 up to initializeCascad(), rather than waiting for propagation. Change 1011 tests on "spath < path" to <= so that at-rest particles still interact (in 1012 these cases, spath and path will both be zero). Hide "zone 0 transition" 1013 message behind verbosity. 1014 1015 - G4ElementaryParticleCollider.cc: Skip neutrinos silently in ::collide(). 1016 1017 10 May 2013 Michael Kelsey 1018 --------------------------- 1019 - G4NucleiModel.hh: Protect getPotential() from leptons, by checking for 1020 ityp<0. 1021 1022 9 May 2013 Michael Kelsey (hadr-casc-V09-06-24) 1023 ------------------------------------------------ 1024 - G4CascadeFinalStateAlgorithm.cc: Fix bugs where two-body and three-body 1025 momentum vectors were not properly rotated before return; caused energy 1026 and momentum violations in hydrogen target cases. Improvided diagnostic 1027 messages to match output from old G4EPCollider version. 1028 1029 8 May 2013 Dennis Wright/Michael Kelsey 1030 ---------------------------------------- 1031 Introduce muon-capture handling, with new particle types and three-body 1032 muon-dibaryon interactions. 1033 1034 Modified files: G4InuclElementaryParticle.hh,.cc 1035 G4InuclParticleNames.hh 1036 G4CascadeChannelTables.cc 1037 G4CascadeInterface.cc 1038 G4ElementaryParticleCollider.hh,.cc 1039 G4NucleiModel.hh,.cc 1040 sources.cmake 1041 1042 New files: G4CascadeMuMinusPChannel.hh,.cc 1043 G4GDecay3.hh,.cc 1044 1045 1 May 2013 Michael Kelsey (hadr-casc-V09-06-23) 1046 ------------------------------------------------ 1047 - G4CascadeInterface: Add static function Initialize() to create shared 1048 objects in master thread, to avoid cross-thread collisions. Currently the 1049 final-state lookup tables and quasideuteron particles are created. 1050 1051 - G4Dineutron, G4Diproton, G4UnboundPN: Remove "G4ThreadLocal" from static 1052 pointer, to make it shared across threads. Modify initialization to get 1053 G4ParticleTable "readiness" flag, and restore saved value. 1054 1055 22 April 2013 Michael Kelsey (hadr-casc-V09-06-22) 1056 --------------------------------------------------- 1057 - G4CascadeChannelTables: Convert to thread-local singletons, to avoid 1058 thread collisions inside "fillSigmaBuffer()" calls within tables (since 1059 that mutable vector is shared across all threads). 1060 1061 22 April 2013 Michael Kelsey (hadr-casc-V09-06-21) 1062 --------------------------------------------------- 1063 NOTE: Requires hadr-mod-util-V09-06-04. 1064 1065 - G4ElementaryParticleCollider: Replace all kinematics generation, except 1066 for pion-dibaryon absorption, with G4CascadeFinalStateGenerator. Simplify 1067 ::collide(), eliminating nested if-blocks, moving replicated code outside 1068 of if-blocks, adding returns on failure tests. 1069 1070 22 April 2013 Michael Kelsey (hadr-casc-V09-06-20) 1071 --------------------------------------------------- 1072 NOTE: Requires hadr-mod-util-V09-06-04. 1073 1074 New interface for momentum and angular distribution generators, subclasses 1075 of (new) models/util/G4VHadDecayAlgorithm. These are intended to be 1076 "temporary" implementations, reproducing G4ElementaryParticleCollider 1077 behaviour. G4EPCollider will be migrated to use GENBOD or another true 1078 phase-space generator. 1079 1080 - G4CascadeFinalStateGenerator: Subclass of G4HadDecayGenerator, which 1081 provides a "Configure" function to take Bertini-specific inputs (bullet, 1082 target, and list of particle types) to set up distributions. 1083 1084 - G4CascadeFinalStateAlgorithm: Subclass of G4VHadDecayAlgorithm, used by 1085 G4CascadeFSGenerator to reproduce G4EPCollider kinematics. Momentum 1086 moduli are generated separately from angular distributions, then merged 1087 together and tested for consistency. 1088 1089 - G4VThreeBodyAngDst.hh: Subclass of G4VTwoBodyAngDst, which provides 1090 interface to generate polar angle for hN -> XYZ or NN -> XYZ states, 1091 currently handled internally to G4EPCollider. 1092 1093 - G4InuclParamAngDst: Subclass of G4VThreeBodyAngDst which implements the 1094 parametrized "abn[2][4][4]" arrays in G4EPCollider. This is exactly 1095 analogous to the recently introduced G4InuclParamMomDst. 1096 1097 - G4HadNucl3BodyAngDst: Instance of G4InuclParamAngDst for (h,Y,g)N -> XYZ 1098 interactions. 1099 1100 - G4NuclNucl3BodyAngDst: Instance of G4InuclParamAngDst for N N -> XYZ 1101 interactions. 1102 1103 - G4TwoBodyAngularDist: Add interface to access three-body distributions. 1104 1105 - sources.cmake: Add all new source files to lists. 1106 1107 22 April 2013 Michael Kelsey (hadr-casc-V09-06-19) 1108 --------------------------------------------------- 1109 Minor code cleanup before deploying some major revisions. 1110 1111 - G4CascadeCoalescence: Replace _TLS_ local variable with mutable data member. 1112 1113 - G4NucleiModel.cc: Reduce number of scoping levels by adding exit returns 1114 at strategic points. 1115 1116 - G4VTwoBodyAngDst.hh: Remove unnecessary #include <vector>. 1117 1118 21 March 2013 Dennis Wright (hadr-casc-V09-06-18) 1119 --------------------------------------------------- 1120 - sources.cmake: Add new G4NP2NPAngDst class. 1121 1122 21 March 2013 Dennis Wright (hadr-casc-V09-06-17) 1123 --------------------------------------------------- 1124 - created class G4NP2NPAngDst to handle np and pn elastic scattering 1125 by sampling histograms taken directly from data 1126 - added above class to G4TwoBodyAngularDist, replacing old np, pn 1127 sampling 1128 1129 14 March 2013 Michael Kelsey (hadr-casc-V09-06-16) 1130 --------------------------------------------------- 1131 - G4CascadeCoalescence.cc, G4InuclSpecialFunctions.cc, G4NucleiModel.cc: 1132 Undo some of the changes made in hadr-casc-V09-06-01 (29 Jan 2013) per 1133 recent guidance from Andrea. Specifically, TLS pointers cannot be 1134 initialized with "new", but must be initialized null, then instantiated 1135 with an if-block. 1136 1137 - G4InuclNuclei.cc: Replace TLS local variable in makeNuclearFragment() 1138 (static function) with a file-scoped non-const static map. Incorporate 1139 thread-locking (mutex) around all accesses to the shared map, since STL is 1140 inherently not thread safe. 1141 1142 11 March 2013 Michael Kelsey (hadr-casc-V09-06-15) 1143 --------------------------------------------------- 1144 - G4HadNucl4BodyMomDst.cc: Fix comment describing function as ">= 4-body". 1145 1146 - G4MultiBodyMomentumDist.cc: Use envvar (G4CASCADE_USE_3BODYMOM) to enable 1147 separate 3-body momentum generators. 1148 1149 - G4CascadeParameters: Add G4CASCADE_USE_3BODYMOM envvar. 1150 1151 - G4InuclSpecialFunctions: Add new "randomInuclPowers()" function to 1152 compute power expansion of random value for momentum and cos(theta) 1153 distributions. 1154 1155 - G4ElementaryParticleCollider.cc: Move INUCL-style calculation (powers of 1156 Ekin and random S) to G4InuclSpecialFunctions. 1157 1158 - G4InuclParamMomDst.cc: Move INUCL-style calculation (powers of 1159 Ekin and random S) to G4InuclSpecialFunctions. 1160 1161 8 March 2013 Michael Kelsey 1162 ---------------------------- 1163 - G4VMultiBodyMomDst.hh, G4VTwoBodyAngDst.hh: Add GetName() function to 1164 return name string, for use with diagnostic utilities. 1165 1166 Add SVN use of 'Id' keyword to all new source files. 1167 1168 7 March 2013 Michael Kelsey (hadr-casc-V09-06-14) 1169 -------------------------------------------------- 1170 Introduce multi-body final state momentum distribution classes and factory, 1171 modelled on the two-body angular distribution system. Leaf classes 1172 implement functionality of G4EPCollider::getMomModuleFor2toMany(), split by 1173 initial state and multiplicity. 1174 1175 - G4VMultiBodyMomDst: Abstract base class for all multi-body final state 1176 momentum generators. Subclasses may cover one or several categories. 1177 1178 - G4InuclParamMomDst: Intermediate base class implementing parametrization 1179 in G4EPCollider, derived from original INUCL Fortran code, with power 1180 expansions in Ekin and random fraction. Subclasses provide coeffient 1181 arrays for specific initial state and multiplicity, with subarrays for 1182 different final-state particles. 1183 1184 - G4NuclNucl3BodyDst: Leaf class for pp,pn,nn 3-body final state from INUCL. 1185 - G4NuclNucl4BodyDst: Leaf class for pp,pn,nn >= 4-body final state from INUCL. 1186 - G4HadNucl3BodyDst: Leaf class for Xp,Xn 3-body final state from INUCL. 1187 - G4HadNucl4BodyDst: Leaf class for Xp,Xn >= 4-body final state from INUCL. 1188 1189 - G4MultiBodyMomentumDist: Factory class to select individual generators 1190 above from initial-state code and multiplicity. 1191 1192 - G4ElementaryParticleCollider.cc: Replace getMomModuleFor2toMany() with 1193 call to G4MultiBodyMomentumDist factory and constituent generators. 1194 1195 7 March 2013 Michael Kelsey 1196 ---------------------------- 1197 - G4ElementaryParticleCollider: Reverse order of indices for rmn[][][] array 1198 used for multibody momentum selection, and abn[][][] used for three-body 1199 angular distribution. This allows direct grouping by initial state, so 1200 functionality can be refactored later. 1201 1202 6 March 2013 Michael Kelsey 1203 ---------------------------- 1204 - G4CascadeChannelTables: Implement global Print() function which dumps all 1205 tables registered in map. 1206 1207 - G4ElementaryParticleCollider: Remove printFinalStateTables() function, 1208 do work directly in G4CascadeChannelTables. Replace numeric values of 1209 particle-type checks with enums. Add detailed comments explaining array 1210 indices for momentum arrays. 1211 1212 6 March 2013 Michael Kelsey (hadr-casc-V09-06-13) 1213 -------------------------------------------------- 1214 Remove obsolete directories evaporation/ and utils/. 1215 1216 - GNUmakefile, CMakeLists.txt: Remove references to obsolete 1217 subdirectories and their corresponding libraries. 1218 1219 NOTE: This tag requires changes at the top level of processes/CMakeLists.txt 1220 and must not be used independently of those changes. 1221 1222 6 March 2013 Michael Kelsey (hadr-casc-V09-06-12) 1223 -------------------------------------------------- 1224 - G4CascadeHistory.cc: Cast calls to "getCharge()" to G4int to avoid 1225 compiler warnings. 1226 1227 5 March 2013 Michael Kelsey (hadr-casc-V09-06-10, -11) 1228 -------------------------------------------------- 1229 - G4CascadeHistory: Support "reabsorbed" cascade particles (excitons and 1230 trapped decays) using "-1 daughters" as a flag. Add heading with legend 1231 to output. 1232 1233 - G4IntraNucleiCascader.cc: Add exciton and trapped-decay info to history. 1234 Move history reporting outside of "itry" loops (only shows final version). 1235 1236 4 March 2013 Michael Kelsey (hadr-casc-V09-06-09) 1237 -------------------------------------------------- 1238 - G4CascadeHistory: NEW container class to collect all secondaries, along 1239 with generated daughters, and report cascade structure hierarchically. 1240 1241 - G4CascadParticle: Add new index data member for use with G4CascadeHistory. 1242 1243 - G4CascadeParameters: Add new G4CASCADE_SHOW_HISTORY envvar to activate 1244 use of G4CascadeHistory. 1245 1246 - G4CascadeParamMessenger: Add macro command for G4CASCADE_SHOW_HISTORY. 1247 1248 - G4IntraNucleiCascader: Add option G4CascadeHistory data member, created 1249 and used only if G4CASCADE_SHOW_HISTORY envvar is set. 1250 1251 - sources.cmake: Add G4CascadeHistory.hh and .cc. 1252 1253 3 March 2013 Michael Kelsey (hadr-casc-V09-06-08) 1254 -------------------------------------------------- 1255 Re-tag with subdirectories "utils" and "evaporation" (excluded by mistake). 1256 1257 2 March 2013 Michael Kelsey (hadr-casc-V09-06-07) 1258 -------------------------------------------------- 1259 - G4NucleiModel: Encapsulate forcing decision in forceFirst() function, 1260 apply to photons only, not hadrons. 1261 1262 27 February 2013 Michael Kelsey (hadr-casc-V09-06-06) 1263 ------------------------------------------------------ 1264 - G4NucleiModel: Modify choosePointAlongTraj() to use mean free path to 1265 bias point selection non-uniformly in each zone. Make member functions 1266 protected (instead of private) to allow external testing. 1267 1268 - G4BarashenkovTwoBodyAngDst: RENAME to G4ParamExpTwoBodyAngDst; previous 1269 name was a misattribution. 1270 1271 - sources.cmake: Follow renaming above. 1272 1273 - G4GammaNuclAngDst, G4HadNElastic1AngDst, G4HadNElastic2AngDst, 1274 G4NuclNuclAngDst, G4PiNInelasticAngDst: Follow renaming of base class. 1275 1276 25 February 2013 Michael Kelsey 1277 -------------------------------- 1278 - G4RegionModel, G4BertiniElasticCollision, G4BertiniHydrogenCollision: 1279 REMOVE obsolete, unused code. 1280 1281 - sources.cmake: Remove obsolete code above. 1282 1283 23 February 2013 Michael Kelsey (hadr-casc-V09-06-05) 1284 ------------------------------------------------------ 1285 - G4NucleiModel.cc: Spurious character got into .cc file during save/commit. 1286 1287 23 February 2013 Michael Kelsey (hadr-casc-V09-06-04) 1288 ------------------------------------------------------ 1289 - G4NucleiModel.cc: Fix zone-density weighting in choosePointAlongTraj. Now 1290 done correctly, if not with optimal code efficiency: more points will be 1291 chosen in core of nucleus than in outer shell. Work needed to reduce 1292 vector arithmetic, move std:vector<>'s out to class data members, etc. 1293 1294 21 February 2013 Michael Kelsey 1295 -------------------------------- 1296 - G4VTwoBodyAngDst: Bug fix: Data member "theName" should be a local copy of 1297 the ctor input string, not a reference to it. When literals are passed 1298 in, a _temporary_ object is created for the ctor which then goes out of 1299 scope, leaving an undefined reference behind. This causes segfaults when 1300 running with verbosity. 1301 1302 - G4CascadParticle: Move ctor body to .cc file, use global envvar to set 1303 initial verbosity (no other code changes verbosity of cparticles). 1304 1305 - G4NucleiModel: Add function to select random point along particle's 1306 trajectory, use with incident photons at initial step to nucleus. 1307 Selection is weighted by average nucleon density in each zone. Code uses 1308 mutliple local G4ThreeVector and std::vector buffers, which need to be 1309 made class members or static-local to reduce memory churn. 1310 1311 21 February 2013 Michael Kelsey (hadr-casc-V09-06-03) 1312 ------------------------------------------------------ 1313 - G4TwoBodyAngularDist: NEW Factory singleton containing all of the 1314 angular-distribution generators created below. Code from G4EPCollider to 1315 choose generator based on initial and final states moved here, accessed 1316 through static function. 1317 1318 - G4ElementaryParticleCollider: Angular distribution generators moved to 1319 new singleton factory. Access to factory is through a static function, so 1320 it can be shared across MT threads. 1321 1322 20 February 2013 Michael Kelsey 1323 -------------------------------- 1324 - G4VTwoBodyAngDst: Add Id string. 1325 1326 - G4NumIntTwoBodyAngDst: Convert to templated, using array dimensions as 1327 template arguments (c.f. G4CascadeSampler). Pass references to C-style 1328 arrays as ctor arguments, use to initialize C-style array const 1329 references. Add local C-style array as reuable buffer for interpolation. 1330 Add Id string. Move .cc file to .icc, referenced from .hh, as required 1331 for template instantiation. 1332 1333 - G4GamP2NPipAngDst, G4GamP2PPi0AngDst: Follow change of base to templated 1334 form, passing arrays as base ctor args, move array initializations to 1335 namespace with "static const". Add Id string. 1336 1337 Extract parametrized two-body angular distribution code from 1338 G4ElementaryParticleCollider to new subclasses of G4VTwoBodyAngDst. These 1339 subclasses will likely be replaced over time with numerically-integrated 1340 CDFs as above. 1341 1342 - G4BarashenkovTwoBodyAngDst: Templated base class for double-exponential 1343 two-body parametrizations, extracted from G4EPCollider. 1344 1345 - G4GammaNuclAngDst, G4NuclNuclAngDst, G4PiNInelasticAngDst, 1346 G4HadNElastic1AngDst, G4HadNElastic2AngDst: Sublcasses of 1347 G4BarashenkovTwoBodyAngDst, with parameter arrays and energy bins 1348 extracted G4EPCollider. 1349 1350 - sources.cmake: Follow filename changes to G4NumIntTwoBodyAngDst.cc -> .icc, 1351 add new parametrized angular distribution classes. 1352 1353 31 January 2013 Dennis Wright (hadr-casc-V09-06-02) 1354 ---------------------------------------------------- 1355 Add detailed two-body final state angular distributions for (gamma,p) and 1356 (gamma,n) reactions, using tables of numerical integrals to sample cos(theta) 1357 1358 - created base classes G4VTwoBodyAngDst and G4NumIntTwoBodyAngDst, and concrete 1359 classes G4GamP2NPipAngDst and G4GamP2PPi0AngDst to hold the tables 1360 1361 - added these channels to G4ElementaryParticleCollider:: 1362 1363 - added new cross section data to G4CascadeT1GamNChannel 1364 1365 29 January 2013 Michael Kelsey (hadr-casc-V09-06-01) 1366 ----------------------------------------------------- 1367 In consultation with Andrea Dotti, revert or modify many of the automatic 1368 code changes (below) for improved MT performance. 1369 1370 - G4Cascade*Channel.hh,cc: Restore "static const" declarations of all final 1371 state arrays, eliminate use of "initialize()" function. In all of the .hh 1372 files, declare "static const data_t data;" to allow sharing across threads. 1373 1374 - G4CascadeFunctions.hh,cc: Restore DATA::data as simple object, not 1375 pointer. 1376 1377 - G4NucleiModel.hh,cc: Move function-static arrays and interpolator for 1378 gamma-quasideuteron cross sections to be class members with file-scope 1379 initialization. Eliminates need to use TLS pointers. 1380 1381 - G4Fissioner.hh,cc: Make two-element std::vector for nuclear fragments 1382 class data member; use G4InuclNuclei::fill() to change contents. 1383 1384 - G4InuclSpecialFunctions.cc, G4CascadeCoalescence.cc: Collapse TLS pointer 1385 initializtion to eliminate unncessary if-blocks. 1386 1387 - G4EquilibriumEvaporator.hh,cc, G4ElementaryParticleCollider.hh,cc: Move 1388 function-static interpolators and arrays to be class members with 1389 file-scope initialization. Eliminates need to use TLS pointers. 1390 1391 25 January 2013 Andrea Dotti et al. 1392 ------------------------------------ 1393 Apply automatic conversion to all code for Geant4-MT thread-safe operation. 1394 1395 20 December 2012 Michael Kelsey 1396 -------------------------------- 1397 - G4ElementaryParticleCollider.cc: Add Omega tables to printout function, 1398 remove line referring to gamma-N as "preliminary." 1399 1400 06 December 2012 Michael Kelsey (hadr-casc-V09-06-00) 1401 ------------------------------------------------------ 1402 - G4IntraNucleiCascader.cc: For rescattering, set generation number of 1403 new secondaries to '1' instead of '0' (so they aren't identified as 1404 projectiles). 1405 1406 - G4NucleiModel.cc: In generateParticleFate() set generation number of 1407 interaction daughters to one more than the parent secondary. Eliminate 1408 complex isProjectile() code in favor of checking for generation==0. 1409 1410 20 October 2012 Michael Kelsey (hadr-casc-V09-05-26) 1411 ----------------------------------------------------- 1412 - G4CascadePPChannel.cc, G4CascadeNNChannel.cc, G4CascadeNPChannel.cc: For 1413 continuous low-energy functions, add cutoff in K.E. to match zero-energy 1414 cross-section value, and avoid divide-by-zero divergence. 1415 1416 19 October 2012 Dennis Wright 1417 ------------------------------ 1418 - for classes G4CascadePPChannel, G4CascadeNNChannel, G4CascadeNPChannel 1419 use Stepanov's functions to fill in total and elastic cross section arrays 1420 at all energy bins from 10 to 320 MeV inclusive. Below 10 MeV use 1421 Stepanov's continuous functions to generate cross section. 1422 1423 15 October 2012 Dennis Wright (hadr-casc-V09-05-25) 1424 ---------------------------------------------------- 1425 - replace SAID cross sections with in-medium cross sections of 1426 Li & Machleidt for incident energies below 420 MeV. Classes 1427 changed: G4CascadePPChannel, G4CascadeNNChannel, G4CascadeNPChannel. 1428 - method findCrossSection removed from G4CascadePPChannel and G4CascadeNPChannel 1429 since no Coulomb is included in L&M cross sections 1430 1431 9 October 2012 Michael Kelsey (hadr-casc-V09-05-24) 1432 --------------------------------------------------- 1433 - G4ExitonConfiguration: Add empty() function to test exciton state, reduce 1434 printout to single line. 1435 1436 - G4InuclNuclei.cc: Report non-empty exciton configuration in print(). 1437 1438 - G4NonEquilibriumEvaporator.cc: Add additional diagnostic messages. 1439 1440 - G4EquilibriumEvaporator.cc: Add additional diagnostic messages. 1441 1442 - G4CascadeCollisionOutput: Add calculations of net strangeness. 1443 1444 - G4CascadeCheckBalance: Add reporting of strangeness conservation (but do 1445 not require validation). 1446 1447 1 October 2012 Michael Kelsey (hadr-casc-V09-05-23) 1448 --------------------------------------------------- 1449 - sources.cmake: Add G4CascadeOmegaMinus*Channel.hh and .cc. 1450 1451 1 October 2012 Dennis Wright, M. Kelsey (hadr-casc-V09-05-22) 1452 ------------------------------------------------------------- 1453 - G4CascadeChannelTables.cc: Add "om*pro" and "om*neu" to LoadTables. 1454 1455 - create classes G4CascadeOmegaMinusPChannel and G4CascadeOmegaMinusNChannel 1456 containing partial cross sections for omega- p and omega- n reactions 1457 1458 25 September 2012 Gabriele Cosmo (hadr-casc-V09-05-21) 1459 ------------------------------------------------------ 1460 - Explicitly use inclusion of headers for system of units and physical 1461 constants, in plan to remove implicit inclusion from globals.hh. 1462 1463 18 September 2012 Michael Kelsey (hadr-casc-V09-05-20) 1464 ------------------------------------------------------ 1465 - G4CascadeParamMessenger.cc: Fix complier warning from ctor initializers. 1466 1467 13 September 2012 Michael Kelsey (hadr-casc-V09-05-19) 1468 ------------------------------------------------------ 1469 - G4CascadeParamMessenger: NEW class to define UI macro commands for 1470 setting the G4CascadeParameters (string) values, as an alternative to 1471 environment variables. 1472 1473 - G4CascadeParameters: Add new G4CascadeParamMessenger (with friendship) 1474 to fill envvar-mapped parameters (const char*) from UI interface. 1475 1476 - sources.cmake: Add G4CascadeParamMessenger.hh,cc, add dependences on 1477 G4intercoms (libraries and include dirs). 1478 1479 - GNUmakefile: Add -I.../intercoms/include. 1480 1481 9 September 2012 Michael Kelsey (hadr-casc-V09-05-18) 1482 ----------------------------------------------------- 1483 - G4CascadePPChannel.hh, G4CascadeNPChannel.hh: Replace 'typedef' with 1484 subclass of templated base. Declare overridden findCrossSection() 1485 function. 1486 1487 - G4CascadePPChannel.cc, G4CascadeNPChannel.cc: Implement overrrided 1488 findCrossSection() function to apply analytic (parametrized) function for 1489 very low energy projectiles, falling back to base interpolation otherwise. 1490 1491 7 September 2012 Michael Kelsey (hadr-casc-V09-05-17) 1492 ----------------------------------------------------- 1493 - sources.cmake: Forgot to change list of source files to match renaming. 1494 1495 4 September 2012 Michael Kelsey (hadr-casc-V09-05-16) 1496 ----------------------------------------------------- 1497 Per Dennis, rename all three nucleon-nucleon channel files to remove the 1498 isospin designation. Files now match corresponding .hh files: 1499 1500 G4CascadeT1ppChannel.cc -> G4CascadePPChannel.cc 1501 G4CascadeT1nnChannel.cc -> G4CascadeNNChannel.cc 1502 G4CascadeT0npChannel.cc -> G4CascadeNPChannel.cc 1503 1504 4 September 2012 Michael Kelsey 1505 ------------------------------- 1506 - G4CascadeT0npChannel.cc: Fix misplaced semicolon in exclusive xsec list. 1507 1508 3 September 2012 Dennis Wright 1509 ------------------------------ 1510 - G4CascadeT1ppChannel.cc, G4CascadeT1nnChannel.cc, G4CascadeT0npChannel.cc: 1511 Use SAID calculations for total and elastic cross-sections up to 320 MeV. 1512 1513 31 August 2012 Michael Kelsey 1514 ----------------------------- 1515 - G4CascadeT1NNChannel.cc: REMOVE. Split into separate pp and nn files. 1516 - G4CascadeT1ppChannel.cc: NEW. Only proton-proton part of T1NNChannel. 1517 - G4CascadeT1nnChannel.cc: NEW. Only neutron-neutron part of T1NNChannel. 1518 - sources.cmake: Remove T1NNChannel, add T1ppChannel and T1nnChannel. 1519 1520 22 August 2012 Michael Kelsey (hadr-casc-V09-05-15) 1521 --------------------------------------------------- 1522 Consolidate all user-configurable environment variables into singleton 1523 container class, instead of having them local to the code which uses them. 1524 This will provide a way to query and report on values in a consistent way. 1525 1526 - G4CascadeParameters: NEW singleton container class to hold and evaluate 1527 any user-configured environment variables. Default values for parameters 1528 are provided, with code moved from original locations (see below). Three 1529 new envvars are also defined: 1530 1531 G4CASCADE_VERBOSE 1532 Pre-set verbosity in G4CascadeInterface constructor, 1533 passes down to all constituent modules. 1534 1535 G4CASCADE_USE_PRECOMPOUND 1536 Select use of PreCompoundModel in G4CascadeInterface constructor. 1537 1538 G4NUCMODEL_USE_BEST 1539 Pre-set all defaults for nuclear model with physical units. 1540 1541 - G4CascadeInterface.hh: Add new function for dumping configuration. 1542 1543 - G4CascadeInterface.cc: Replace environment variable usage with calls to 1544 G4CascadeParameters. Add pre-setting of verbosity and PreCompoundModel. 1545 Implement configuration dump as call-through to G4CascadeParameters. 1546 1547 - G4CascadeCoalescence.cc: Replace environment variable usage with calls to 1548 G4CascadeParameters. 1549 1550 - G4IntraNucleiCascader.cc: Replace environment variable usage with calls to 1551 G4CascadeParameters. 1552 1553 - G4NucleiModel.cc: Replace environment variable usage with calls to 1554 G4CascadeParameters. 1555 1556 - sources.cmake: Add G4CascadeParameters.hh,.cc. 1557 1558 ----- 1559 NOTE: Tag hadr-casc-V09-05-14 and changes to G4CascadeInterface.cc were 1560 lost due to SVN repository incident. 1561 ----- 1562 1563 3 July 2012 Michael Kelsey (hadr-casc-V09-05-13) 1564 ------------------------------------------------ 1565 - G4CascadeCoalescence.cc: Bug fix: list of clusters already tried was not 1566 cleared at start of new event, so entries from previous events prevented 1567 formation of valid clusters. Also improve diagnostic messages somewhat. 1568 1569 8 June 2012 Michael Kelsey (hadr-casc-V09-05-12) 1570 ------------------------------------------------ 1571 Address compiler warnings about variable-shadowing (local variable has same 1572 name as data member or global variable) which appear when "-Wshadow" is used. 1573 1574 G4InuclSpecialFunctions.hh 1575 G4CascadeSampler.icc 1576 G4CascadeData.icc 1577 G4InuclElementaryParticle.hh 1578 G4InuclEvaporation.cc 1579 G4EquilibriumEvaporator.cc 1580 G4InuclElementaryParticle.cc 1581 G4NonEquilibriumEvaporator.cc 1582 G4NucleiModel.cc 1583 G4CascadeInterface.cc 1584 G4InuclSpecialFunctions.cc 1585 G4ElementaryParticleCollider.cc 1586 G4BigBanger.cc 1587 (evaporation) G4BENeutronChannel.cc 1588 (evaporation) G4BEChargedChannel.cc 1589 (evaporation) G4BertiniEvaporationChannel.cc 1590 1591 25 May 2012 Michael Kelsey (hadr-casc-V09-05-11) 1592 ------------------------------------------------ 1593 - G4Dineutron.cc, G4Diproton.cc, G4UnboundPN.cc: Add code to protect 1594 against warning messages from G4ParticleTable::Remove(), introduced with 1595 particles-V09-05-03. 1596 1597 - G4CascadeCheckBalance.cc: Lower verbosity level for energy-conservation 1598 reports, change violation rules to allow relative OR absolute passing, 1599 consistent with new process-level checks. 1600 1601 - G4CascadeInterface.cc: Check for small negative projectile energy and 1602 force to zero, to protect against occasional G4HadFinalState exceptions. 1603 1604 23 May 2012 Michael Kelsey (hadr-casc-V09-05-10) 1605 ------------------------------------------------ 1606 - G4CascadeInterface: Add local implementation of IsApplicable(), both the 1607 base class (track,nucleus) and one using G4ParticleDefinition. Returns 1608 true only if interaction tables are defined for projectile. 1609 1610 21 May 2012 Alberto Ribon (hadr-casc-V09-05-09) 1611 ----------------------------------------------- 1612 - G4IntraNucleiCascader.cc: Specify mass when decay trapped particle. 1613 This fixes reproducibility violations when hyperons are forced to 1614 decay inside the nucleus. 1615 1616 17 May 2012 Alberto Ribon (hadr-casc-V09-05-08) 1617 ----------------------------------------------- 1618 - G4Fissioner.cc: Removed static in local vectors AL1 and BET1 in the 1619 method G4Fissioner::collide, to ensure reproducibility. 1620 1621 4 April 2012 Michael Kelsey (hadr-casc-V09-05-07) 1622 -------------------------------------------------- 1623 - G4CascadeCoalescence.cc: Use std::ostream_iterator<size_t> to report 1624 cluster indices, to avoid compiler warning. 1625 1626 21 March 2012 Michael Kelsey (hadr-casc-V09-05-06) 1627 --------------------------------------------------- 1628 - G4NucleiModel.cc: Add check in isProjectile() for single-zone nuclei, and 1629 ignore "movingInward" flag in that case. 1630 1631 20 March 2012 Michael Kelsey (hadr-casc-V09-05-05) 1632 --------------------------------------------------- 1633 - G4NucleiModel.cc: Fill zone_volumes buffer for single-zone case. 1634 1635 14 March 2012 Michael Kelsey 1636 ----------------------------- 1637 - test/: Tagged all existing, obsolete code as "OLD_Validation_Suite" for 1638 future recovery if desired. Remove all code and files from active use, to 1639 be replaced with our separate "ppi4GeV" utility program, suitably renamed. 1640 1641 9 March 2012 Michael Kelsey 1642 ---------------------------- 1643 - G4CascadeSigmaMinusPChannel.cc: Change zero-bin cross-sections for 1644 Lambda-n and Sigma0-n, based on data from M. Goossens et al. measurements 1645 of Sigma- capture (per J. Yarba). 1646 1647 - G4NucleiModel.cc: Add scale factor, set via envvar, for gamma absorption. 1648 1649 8 March 2012 Michael Kelsey 1650 ---------------------------- 1651 - G4NucleiModel.cc: In absorptionCrossSection() add binned spectrum derived 1652 from Mikhail Kossov's gamma-D absorption data, for use with photons. 1653 1654 - G4ElementaryParticleCollider.cc: Modify sanity checks on dibaryon targets 1655 to allow both photons and gamma to interact; gammas split the dibaryons 1656 the same way pi0's do. 1657 1658 7 March 2012 Michael Kelsey 1659 ---------------------------- 1660 - G4NucleiModel: In generateInteractionPartners() and 1661 absorptionCrossSection(), allow photons to be absorbed via dibaryon 1662 (quasideuteron) excitation. Simplify and encapsulate path-length 1663 computations in generateInteractionPartners(), with several new internal 1664 functions, and a buffer to store the zone-by-zone shell volumes. 1665 1666 5 March 2012 Michael Kelsey 1667 ---------------------------- 1668 - G4CascadParticle.hh: Add public accessor for cumulative path length. 1669 1670 - G4NucleiModel.cc: In generateInteractionPartners(), check to see if 1671 CParticle is incident projectile (inbound from outside nucleus, not 1672 created in outer zone). If so, force interaction to be attempted rather 1673 than cutting on mean free path. 1674 1675 - G4CascadeKminusPChannel.cc: Modify two-body cross-section values in 1676 zero-energy bin, to reflect stopping data from Julia Yarba. 1677 1678 25 January 2012 Michael Kelsey (hadr-casc-V09-05-04) 1679 ----------------------------------------------------- 1680 - G4CascadeInterface.cc: Check for no-interaction in retryInelasticProton, 1681 both in return value and in debugging report. 1682 1683 25 January 2012 Michael Kelsey (hadr-casc-V09-05-03) 1684 ----------------------------------------------------- 1685 - G4NucleiModel.hh: In getPotential() add test for ip==9 (photon) to return 1686 zero potential. Otherwise it will return the 7 MeV flat pion potential, 1687 which is not correct. 1688 1689 20 January 2012 Vladimir Ivantchenko (hadr-casc-V09-05-02) 1690 ----------------------------------------------------------- 1691 - G4PreCompoundDeexcitation.cc: Do not delete pre-compound model and excitation 1692 handler to avoid double deletion 1693 1694 6 January 2012 Dennis Wright (hadr-casc-V09-05-01) 1695 ---------------------------------------------------- 1696 - G4ElementaryParticleCollider.cc: add angular distributions for elastic and 1697 inelastic 2-body final states of gamma p and gamma n reactions. 1698 1699 19 December 2011 Michael Kelsey (hadr-casc-V09-05-00) 1700 ------------------------------------------------------ 1701 - G4ElementaryParticle.cc: Expand diagnostics in getMomModuleFor2toMany(), 1702 in generateSCMfinalState(), defer "particles.resize()" action until after 1703 final-state properties have been validated. In case no final state can be 1704 generated, this ensures that the failure propagates back up the calling 1705 chain, instead of simply looping forever. 1706 1707 - G4NucleiModel.cc: If G4ElementaryParticle::collide() returns empty 1708 output, stop propagating. 1709 1710 7 November 2011 Michael Kelsey (hadr-casc-V09-04-41) 1711 ----------------------------------------------------- 1712 - G4NucleiModel.cc: Due to some validation discrepancies, revert structure 1713 parameters to old non-physical values. 1714 1715 - G4ElementaryParticleCollider.cc: In sampleCMmomentumFor2to2(), hide 1716 message about unrecognized initial-state behind verbosity flag. 1717 1718 3 November 2011 Dennis Wright (hadr-casc-V09-04-40) 1719 ----------------------------------------------------- 1720 - G4CascadeInterface.hh, .cc: switch from Description() to ModelDescription() 1721 1722 27 October 2011 Gabriele Cosmo (hadr-casc-V09-04-39) 1723 ----------------------------------------------------- 1724 - Added workaround to use 'this' pointer for internal calls in 1725 G4CascadeFunctions.hh/.icc, to allow for compilation on Xcode on MacOX Lion. 1726 1727 18 October 2011 Michael Kelsey (hadr-casc-V09-04-38) 1728 ----------------------------------------------------- 1729 - G4CascadParticle.cc: In getPathToTheNextZone(), check for zero momentum 1730 (pp < 1e-9) and return zero path-length; this will support capture at rest. 1731 1732 - G4NucleiModel.cc: Change kaon potential to be positive, not negative, so 1733 slow kaons will occasionally be captured. 1734 1735 7 October 2011 Dennis Wright, Michael Kelsey 1736 --------------------------------------------- 1737 - sources.cmake: Add new channel files below. 1738 1739 - G4CascadeGamNChannel.hh, G4CascadeGamPChannel.hh, G4CascadeT1GamNChannel.cc: 1740 NEW final state tables for gamma-nucleon interactions, with final states 1741 up to 9-body, using the same energy binning as pion-nucleon. 1742 1743 - G4CascadeChannelTables.cc: Add new gamma-nucleon interaction states to 1744 LoadTable() switch block. 1745 1746 - G4ElementaryParticleCollider.cc: Add printing of gamma-nucleon tables. 1747 1748 - G4EquilibriumEvaporator.cc: Replace hardwired particle codes with enums. 1749 1750 - G4InuclParticleNames.hh: Change photon code to '9', to avoid initial 1751 state conflict between piMinus-n (= 5*2 = 10) and gamma-p (= 10*1 = 10). 1752 1753 4 October 2011 Michael Kelsey (hadr-casc-V09-04-37) 1754 ---------------------------------------------------- 1755 - G4IntraNucleiCascader.cc, G4ElementaryParticleCollider.cc, 1756 G4InuclCollider.cc: Prepare for gamma-N interactions by checking for 1757 existence of final-state tables, rather than for "isPhoton()". 1758 1759 28 September 2011 Michael Kelsey (hadr-casc-V09-04-36) 1760 ------------------------------------------------------- 1761 - evaporation/src/G4BertiniEvaporation.cc: Migrate to integer A&Z. This 1762 code is moribund; migration is to avoid compilation errors. 1763 1764 27 September 2011 Michael Kelsey (hadr-casc-V09-04-35) 1765 ------------------------------------------------------- 1766 - G4CascadeCoalescence.cc: BUG FIX for Windows: Replace strtof() with strtod(). 1767 1768 27 September 2011 Michael Kelsey (hadr-casc-V09-04-34) 1769 ------------------------------------------------------- 1770 - G4CascadeCoalescence.cc: BUG FIX for GCC>4.2: Add missing #include <iterator>. 1771 1772 26 September 2011 Michael Kelsey (hadr-casc-V09-04-33) 1773 ------------------------------------------------------- 1774 - G4ElementaryParticleCollider.cc: Protect against non-physical arguments 1775 and FPE in two-body angular distributions. 1776 1777 - G4IntraNucleiCascader.cc: Replace compiler flag with one-time envvar 1778 access in ctor to enable clustering. 1779 1780 23 September 2011 Michael Kelsey (hadr-casc-V09-04-32) 1781 ------------------------------------------------------- 1782 - sources.cmake: Add G4CascadeChannel.cc. 1783 1784 - G4CascadeChannel: Add optional stream& argument to printTable(), and new 1785 stream operator<<, calling virtual printTable(). 1786 1787 - G4CascadeChannelTables: Add optional stream& argument to printTable(). 1788 1789 - G4CascadeData, G4CascadeFunctions, G4CascadeSampler, 1790 G4CascadeInterpolator: Add optional stream& argument to print() 1791 functions, and pass through to members. 1792 1793 - G4ElementaryParticleCollider: Add optional stream& argument to 1794 printFinalStateTables(), pass through to printing tables. 1795 1796 22 September 2011 Michael Kelsey 1797 --------------------------------- 1798 - sources.cmake: Add G4ExitonConfiguration.cc, G4FissionConfiguration.cc 1799 1800 - G4CascadeInterface.cc: Modify throwNonConservationFailure() to be ready 1801 to use G4ExceptionDescription, once G4HadronicException supports it. 1802 1803 Replace most G4cout-specific print() functions with stream operators, in 1804 order to anticipate supporting G4ExceptionDescription streams. 1805 1806 - G4CascadParticle: Add ostream& to print(), without trailing endl. Define 1807 operator<<, calling virtual print(). Affects two classes: 1808 1809 G4IntraNucleiCascader.cc G4NucleiModel.cc 1810 1811 - G4CollisionOutput: Add optional ostream& to printCollisionOutput(), with 1812 G4cout as the default. No clients affected. 1813 1814 - G4ExitonConfiguration, G4FissionConfiguration: Replace print() with 1815 stream operator<<, defined in new .cc files. Affects G4FissionStore.cc. 1816 1817 - G4InuclParticle, G4InuclNuclei, G4InuclElementaryParticle: Add ostream& 1818 to printParticle(), renamed as print(), without trailing endl. Define 1819 operator<< only in base class, calling virtual print(). Affects 12 classes: 1820 1821 G4BigBanger.cc G4CascadParticle.cc 1822 G4CascadeCoalescence.cc G4CascadeInterface.cc 1823 G4CollisionOutput.cc G4ElementaryParticleCollider.cc 1824 G4EquilibriumEvaporator.cc G4EvaporationInuclCollider.cc 1825 G4Fissioner.cc G4IntraNucleiCascader.cc 1826 G4NonEquilibriumEvaporator.cc G4NucleiModel.cc 1827 1828 22 September 2011 Michael Kelsey 1829 --------------------------------- 1830 - G4CascadeCoalescence: Add list of clusters already attempted, check list 1831 at top of tryClusters() to reduce combinatorial explosion (factor of >10). 1832 1833 22 September 2011 Michael Kelsey (hadr-casc-V09-04-31) 1834 ------------------------------------------------------- 1835 - G4CascadeCoalescence.cc: Create light ions without excitation energy. 1836 This will violate energy conservation, but is necessary since the excess 1837 from momentum exceeds the binding energy. 1838 1839 - G4IntraNucleiCascader.cc: Recompute recoil fragment after clustering, to 1840 account for E-violation (above). 1841 1842 20 September 2011 Michael Kelsey 1843 --------------------------------- 1844 - G4CascadeCoalescence.cc: Relative momenta computed in c.m. frame of 1845 nucleon pair, not in event frame. Add environment variables for cuts: 1846 DPMAX_2CLUSTER, DPMAX_3CLUSTER, DPMAX_4CLUSTER. Clean up interfaces 1847 to use cluster as argument instead of polymorphic lists. Improve 1848 combinatorics. 1849 1850 19 September 2011 Michael Kelsey 1851 --------------------------------- 1852 - G4CascadeCoalescence: NEW factory class to implement conversion of 1853 final-state nucleon "clusters" into light ions. Uses LAQGSM algorithm 1854 (Sec. 2.3, http://lib-www.lanl.gov/la-pubs/00818645.pdf). 1855 1856 - G4IntraNucleiCascader: Add final-state clustering as OPTIONAL facility, 1857 controlled through compile-time flag G4CASCADE_DO_COALESCENCE. Clustering 1858 is done during cascade finalization. 1859 1860 - G4InuclNuclei.cc: Allow A=0,Z=0 to produce null definition pointer. 1861 1862 - G4InuclParticle: Add Coalescence to list of model IDs; move setDefinition 1863 to .cc file and allow passing null pointer. 1864 1865 - GNUmakefile: Add G4CASCADE_DO_COALESCENCE flag. 1866 1867 16 September 2011 Michael Kelsey (hadr-casc-V09-04-30) 1868 ------------------------------------------------------- 1869 - G4CascadeChannelTables: Add load-on-demand via GetTable(). Move static 1870 implementations to .cc file (Windows compatibility issue). 1871 1872 - G4CascadeFunctions.icc: Remove self-registration from ctor. 1873 1874 - G4Cascade*Channel.cc: Remove all namespace self-instantiations; 1875 initialization is inconsistent across platforms. 1876 1877 31 August 2011 Michael Kelsey 1878 ------------------------------ 1879 - G4CascadeInterface.cc: Undo copying of G4V3DNucleus; creates incorrect 1880 PDG codes for proton and neutron. 1881 1882 31 August 2011 Michael Kelsey (hadr-casc-V09-04-29) 1883 ---------------------------------------------------- 1884 - G4NucleiModel.cc: Make "best guess" parameters defaults for structure model, 1885 leave "old" versions in place with C-style comments on each line. 1886 1887 - G4CascadParticle.cc: Add protection against negative radicand. 1888 1889 29 August 2011 Michael Kelsey 1890 ------------------------------ 1891 - G4InuclNuclei: Add constructor to copy G4V3DNucleus. 1892 - G4CascadeInterface.cc: Use new G4InuclNuclei ctor in ::Propagate() 1893 - G4IntraNucleiCascader.cc: Fill excitation state with holes determined 1894 from input G4V3DNucleus "hits". 1895 1896 25 August 2011 Michael Kelsey (hadr-casc-V09-04-28) 1897 ---------------------------------------------------- 1898 - G4EquilibriumEvaporator.cc: Remove unprotected diagnostic statement. 1899 1900 25 August 2011 Michael Kelsey (hadr-casc-V09-04-27) 1901 ---------------------------------------------------- 1902 - G4NucleiModel: Remove obsolete local cross-section arrays; use standard 1903 tables, which are numerically equivalent. Add comment block with "best 1904 guess" values for converting model to physical units (these will hopefully 1905 become the defaults). 1906 1907 9 August 2011 Michael Kelsey (hadr-casc-V09-04-26) 1908 --------------------------------------------------- 1909 - G4CascadParticle: Add ::fill() function with ctor args to allow loading 1910 vectors by "assignment," rather than with temporaries. 1911 1912 - G4BigBanger.cc, G4ElementaryParticleCollider.cc: 1913 Reduce memory churn by using resize() and array assignment instead of 1914 push_back() with temporaries where appropriate. 1915 1916 - G4NucleiModel: Move return buffer from generateParticleFate to non-const 1917 input argument, eliminating unnecessary copy. 1918 1919 - G4IntraNucleiCascader.cc: Move "new_cascad_particles" to be argument to 1920 generateParticleFate(), for filling instead of copying. 1921 1922 - G4EquilibriumEvaporator.cc: Improve building final-state particles to 1923 reduce creation of temporaries. 1924 1925 9 August 2011 Michael Kelsey 1926 ----------------------------- 1927 - G4CascadeInterface.cc: Clean up Description() implementation somewhat. 1928 - G4EquilibriumEvaporator: Move foutput to data member, use reference access. 1929 1930 9 August 2011 Dennis Wright 1931 ---------------------------- 1932 - G4CascadeInterface: Add Description() function for autogenerated HTML. 1933 1934 3 August 2011 Michael Kelsey (hadr-casc-V09-04-25) 1935 --------------------------------------------------- 1936 - G4PreCompoundDeexcitation.cc: Add diagnostic output when processing results. 1937 - G4CollisionOutput.cc: Add diagnostics for copying G4ReactionProducts, and 1938 fix bug with momentum units (must convert to Bertini GeV). 1939 1940 2 August 2011 Michael Kelsey 1941 ----------------------------- 1942 - G4CascadeChannel.hh: Add ctor and virtual dtor (with no action) to fix 1943 Coverity report #29838. 1944 1945 2 August 2011 Michael Kelsey (hadr-casc-V09-04-24) 1946 --------------------------------------------------- 1947 - G4CascadeInterface.cc: Use new G4DecayKineticTracks in Propagate to 1948 handle short-lived inputs. Requires hadr-mod-util-V09-04-01. 1949 1950 1 August 2011 Michael Kelsey (hadr-casc-V09-04-23) 1951 --------------------------------------------------- 1952 - G4InuclElementaryParticle: Add fill() functions to reuse existing object, 1953 reducing memory churn due to creating temporaries. 1954 1955 - G4CascadeInterface.cc: Update local buffers to use G4InuclEP::fill(). 1956 1957 - G4CollisionOutput.cc: Use resize() and set/fill to eliminate temporary 1958 copies in addOutgoingParticles(G4ReactionProductVector*). 1959 1960 - G4IntraNucleiCascader: Add local buffers for rescattering target, use 1961 fill to reduce memory churn, and eliminate memory leak! 1962 1963 31 July 2011 Michael Kelsey 1964 ---------------------------- 1965 - G4CascadeInterface: Add local buffers for bullet and target possibilities, 1966 assign pointers to buffer addresses as appropriate. Reduces per-event 1967 memory churn for each particle. 1968 1969 - G4EquilibriumEvaporator: Move "parms" buffer (pair<vector<>,vector<>>) to 1970 data member, pre-allocate known size, to reduce per-event memory churn. 1971 1972 - G4FissionConfiguration.hh: Make ::print() const. 1973 1974 - G4FissionStore: Move "probs" vector to data member, reducing memory churn. 1975 1976 - G4Fissioner: Use C-style arrays as arguments to potentialMinimization, 1977 since size is fixed. Reduces memory churn. 1978 1979 29 July 2011 Michael Kelsey 1980 ---------------------------- 1981 - G4CascadParticle.hh: Add functions to explicitly set all data members, 1982 including initial path and generation, to support changes below. Re-order 1983 member functions in set/get pairs. 1984 1985 - G4IntraNucleiCascader: Replace convertKineticToCascade() with 1986 processSecondary(), which writes directly to G4CascadParticle "buffer" in 1987 processing list. Eliminates new/delete cycling and memory churn. 1988 1989 29 July 2011 Michael Kelsey (hadr-casc-V09-04-22) 1990 -------------------------------------------------- 1991 - G4CascadeChannelTables.cc: Use FindTable() to determine if table has been 1992 created already or not. Add "clear()" to ctor to initialize empty map 1993 (GCC 4.1.2 segfaults on first insertion otherwise). Add diagnostic 1994 messages hidden with G4CASCADE_DEBUG_SAMPLER compiler flag. 1995 1996 28 July 2011 Michael Kelsey 1997 ---------------------------- 1998 Fix, or flag as "Ignore," all outstanding Coverity reports. 1999 2000 20228 G4CascadeFunctions.icc: Fix bug, compare (mult > maxMult) and set to 2001 max on true. Otherwise, mult can overflow array dimension. 2002 2003 20230 G4CascadeInterpolator.icc: Remove "recursive" #include of .hh file. 2004 2005 20231 G4CascadeSampler.icc: Remove "recursive" #include of .hh file. 2006 2007 22951 G4EquilibriumEvaporator.cc: Check for icase<0 after assignment loop, 2008 to avoid invalid array subscript. 2009 2010 22954 G4CascadeData.icc: Remove "recursive" #include of .hh file. 2011 2012 22955 G4CascadeFunctions.icc: Remove "recursive" #include of .hh file. 2013 2014 23843 G4EvaporationInuclCollider: Add dtor to delete EquilibriumEvaporator. 2015 2016 28776 G4InuclEvaporation.cc: Remove return following throw. 2017 2018 27 July 2011 Michael Kelsey (hadr-casc-V09-04-21) 2019 -------------------------------------------------- 2020 - G4CascadeInterface.cc: Simplify NoInteraction() per V.Ivantchenko. No 2021 particles are returned, but "SetEnergyChange" is used to communicate to 2022 tracking that real track should be stopped and deposit all its energy. 2023 2024 - G4NucleiModel: Compared local kaon/hyperon cross-section tables with 2025 sum-of-exclusive tables from G4Cascade*Channel.cc; all bin values below 10 2026 GeV are identical. The channel tables have a somewhat more realistic 2027 treatment of high energy projectiles (a logarithmic decrease rather than 2028 flat). Remove the local arrays, using channel table lookup for everything. 2029 2030 25 July 2011 Michael Kelsey (hadr-casc-V09-04-20) 2031 -------------------------------------------------- 2032 Make cross-section tables self-registering at job initialization. No switch 2033 blocks needed any longer: new initial-state tables become usable without 2034 any code modification. 2035 2036 - G4CascadeData: Add data member storing initial state argument. 2037 2038 - G4CascadeFunctions: Move constructor implementation to .icc file, where 2039 registration to lookup table is done. 2040 2041 - G4CascadeChannelTables: Change from namespace back to class, with 2042 std::map as data member. Add public function to register new table in 2043 map, and return null pointer if lookup fails (i.e., no create-on-demand). 2044 2045 - G4Cascade*Channel.cc: Add local instance of each cross-section table, 2046 used solely to trigger auto-registration in base class ctor. The 2047 corresponding .hh files no longer appear anywhere else in Bertini code. 2048 2049 25 July 2011 Michael Kelsey (hadr-casc-V09-04-19) 2050 -------------------------------------------------- 2051 - sources.cmake: Update HEADERS and SOURCES list with new code added 20 2052 July 2011. This must be done manually. 2053 2054 22 July 2011 Michael Kelsey (hadr-casc-V09-04-18) 2055 -------------------------------------------------- 2056 - G4CascadeInterface.cc: In makeDynamicParticle(), allow invalid type codes 2057 in order to process, e.g., resonances from Propagate() input. 2058 2059 - G4InuclNuclei.hh: Fix bug in ctor (mom,A,Z,Eexc,model) -- failed to set 2060 excitation energy; causes energy non-conservation in de-excitation code. 2061 2062 22 July 2011 Michael Kelsey (hadr-casc-V09-04-17) 2063 -------------------------------------------------- 2064 - G4IntraNucleiCascader: Deprecate local "output_particles" list in favor 2065 of using "output" (G4CollisionOutput) buffer directly. This will support 2066 handling light ions and unrecognized particles for rescattering. 2067 2068 - G4CascadeCheckBalance: Replace std::vector<G4InuclEP> argument with 2069 G4CollisionOutput in version of ::collide() for G4IntraNucleiCascader. 2070 2071 - G4CascadeRecoilMaker: Replace std::vector<G4InuclEP> argument with 2072 G4CollisionOutput in version of ::collide() for G4IntraNucleiCascader. 2073 2074 21 July 2011 Michael Kelsey 2075 ---------------------------- 2076 - G4IntraNucleiCascader: For pre-cascade rescattering, put resonances, or 2077 any particle which cannot be propagated by Bertini, directly onto output, 2078 without decaying. Requires G4InuclEP constructor which takes G4PartDef 2079 directly, avoiding possibly undefined type codes. 2080 2081 NOTE: The ::rescatter() process doesn't generate a proper recoil nucleus 2082 because outgoing_particles is used, rather than output. 2083 2084 - G4InuclParticle: Modify all constructors to take the model code as an 2085 optional argument, so that subclasses don't have to set it manually. 2086 2087 - G4InuclNuclei: Modify constructors to pass model code to base (as above), 2088 instead of calling SetModel() explicitly. 2089 2090 - G4InuclElementaryParticle: Modify constructors to pass model code to base 2091 (as above), instead of calling SetModel() explicitly. Add new constructor 2092 which takes G4ParticleDefinition* argument instead of type code. Allows 2093 client code to create objects without a valid (enumerated) type, e.g. for 2094 passing pre-cascade resonances through to output. 2095 2096 21 July 2011 Michael Kelsey (hadr-casc-V09-04-16) 2097 -------------------------------------------------- 2098 - G4ElementaryParticleCollider.cc: Hide "mult" argument to 2099 getMomModule2toMany(), as it is no longer used (V. Uzhinsky's fix). Fixes 2100 compilation warning from hadr-casc-V09-04-15. 2101 2102 - G4CascadeInterface.cc: In NoInteraction(), only projectile should be 2103 copied to final state, not target nucleus. 2104 2105 - G4CascadeT1NNChannel.cc: Fix final 9-body final-state list for both nn 2106 and pp: existing entries violate charge. 2107 2108 20 July 2011 Michael Kelsey 2109 ---------------------------- 2110 - G4CascadeInterface: Drop local copy of G4HadFinalState (theResult), 2111 available directly from base class (theParticleChange). Add NoInteraction() 2112 to copy input particle directly to return in case of problems. 2113 Modify createBullet() to leave pointer null if not a valid particle; in 2114 ApplyYourself(), check for both null bullets and bullet types without 2115 interaction tables and return NoInteraction() in those cases. Fix bug in 2116 reporting charge violation. 2117 2118 - G4CascadeChannel.hh: Repurpose this as non-template base class for all 2119 cross-section tables, specifying public interface (pure virtual). Used 2120 with multiple inheritance for G4CascadeFunctions<> to allow instantiation 2121 and pointer return (below). 2122 2123 - G4CascadeChannel.cc: DELETE code from previous version of name. 2124 2125 - G4CascadeFunctions: Add inheritance from G4CascadeChannel, replace 2126 static functions with virtual; must create instance from now on. 2127 2128 - G4CascadeChannelTables: NEW namespace with function to return 2129 cross-section tables by pointer based on two-body initial state. 2130 2131 - G4ElementaryParticleCollider.cc: Remove all switch-blocks, replace with 2132 calls to G4CascadeChannelTables; in PrintFinalStateTables, use convenience 2133 funciton directly in G4CascadeChannelTables. 2134 2135 - G4NucleiModel.cc: Remove use of G4CascadeXXXChannel in switch block; 2136 under "default:", make calls to G4CascadeTables. 2137 2138 19 July 2011 Michael Kelsey (hadr-casc-V09-04-15) 2139 -------------------------------------------------- 2140 - G4CascadeInterface.cc: If accept/reject loop fails (maximum retries), 2141 return initial state untouched rather than last generated cascade. This 2142 avoids exposing an elastic scattering event under any circumstances. 2143 2144 19 July 2011 Michael Kelsey (hadr-casc-V09-04-14) 2145 -------------------------------------------------- 2146 - G4ChannelData: Add new ctor argument "initialState", to specify the 2147 product of the hadrons (e.g., for KminusP, the value is "kmi*pro"). This 2148 argument is used to find the elastic channel cross-sections to be 2149 subtracted from tot[] to get inelastic[] (other two-body channels, 2150 including the quasi-elastic charge exchange, are treated as inelastic). 2151 2152 - G4Cascade*Channel.cc: Add new ctor argument for all cross-section tables. 2153 2154 18 July 2011 Michael Kelsey (hadr-casc-V09-03-91) ***BRANCH TAG*** 2155 -------------------------------------------------- 2156 - G4LorentzConvertor.cc: Copy HEAD version, which includes protections for 2157 ::rotate() applied to at-rest system (i.e., z-axis ~ (0,0,0)), and 2158 simplifies calculations to avoid similar errors elsewhere. 2159 2160 NOTE: Changes below not included in branch tag. 2161 2162 18 July 2011 Michael Kelsey (hadr-casc-V09-04-13) 2163 -------------------------------------------------- 2164 - G4ChannelData: Add new "inelastic" array, filled in initialize() to the 2165 sum of 3-body and higher multiplicity cross-sections. 2166 2167 - G4CascadeInterface.cc: Change an error message to not show "ApplyYourself" 2168 2169 - G4ElementaryParticleCollider.cc: Per V. Uzhinskiy, remove special 2170 "mult==3" case from getMomModule2toMany(). Replace magic numbers in 2171 switch blocks with particle-name enums. 2172 2173 1 July 2011 Michael Kelsey 2174 --------------------------- 2175 - G4NucleiModel.hh/.cc, G4InuclPartice.hh, G4InuclElementaryParticle.hh: 2176 Copy minor comment changes applied to 9.4-ref-06 and 9.5-beta to HEAD. 2177 2178 17 June 2011 Michael Kelsey 2179 ---------------------------- 2180 - G4NucleiModel.cc: Change "R_nucleon" (trailing effect nucleon radius) to 2181 be adjustable parameter using G4NUCMODEL_RAD_TRAILING. Also apply radius 2182 scaling factor to numerical value. This code should NOT be proposed for 2183 builds until tested with thick-target models. 2184 2185 2 June 2011 Michael Kelsey (hadr-casc-V09-04-12) 2186 ------------------------------------------------- 2187 - G4LorentzConvertor: Drop most "intermediate" kinematic parameters used in 2188 rotate, in favor of somewhat more direct vector operations. Change test 2189 for "degenerated" to use "small" rather than "small*small". 2190 2191 25 May 2011 Michael Kelsey (hadr-casc-V09-04-11) 2192 ------------------------------------------------- 2193 - G4LorentzConvertor.cc: Add diagnostic messages in both ::rotate(). 2194 2195 - G4NucleiModel.cc: Revert length scales to pre-V09-04-04 ("2.82" factor); 2196 see 18 March 2011 notes below. Should undo visible-energy and angular 2197 distribution effects seen in GEANT4 9.4-ref-04 testing. 2198 2199 19 May 2011 Michael Kelsey (hadr-casc-V09-04-10) 2200 ------------------------------------------------- 2201 - G4CollisionOutput.cc: Drop unused "p2" from selectPairToTune(). 2202 - G4NucleiModel.cc: Use computed value "rho" instead of recomputing twice. 2203 2204 - G4CascadeInterface: Add support for capturing random-engine state to user 2205 file (specified with environment variable G4CASCADE_RANDOM_FILE) at each 2206 ApplyYourself() or Propagate() invocation. This will allow (hopefully!) 2207 easier reproduction of crashes in complex applications. 2208 2209 3 May 2011 Michael Kelsey 2210 -------------------------- 2211 - G4LorentzConvertor.cc: Add a couple of diagnostic messages to ::rotate(). 2212 2213 27 April 2011 Michael Kelsey (hadr-casc-V09-04-09) 2214 -------------------------------------------------- 2215 - G4InuclNuclei.cc: Remove preface about "non-standard PDGencoding," since 2216 particles-V09-04-01 has removed the corresponding warning messages. 2217 2218 15 April 2011 Michael Kelsey 2219 ---------------------------- 2220 - G4ParticleLargerEkin.hh, G4ParticleLargerBeta.hh: Add interfaces to do 2221 sorting of G4CascadParticles, needed for initial setup of ::Propagate(). 2222 2223 - G4IntraNucleiCascader.cc: In ::copySecondaries(), sort list by kinetic 2224 energy. 2225 2226 13 April 2011 Michael Kelsey (hadr-casc-V09-04-08, hadr-casc-V09-03-88) 2227 ----------------------------------------------------------------------- 2228 - G4ElementaryParticleCollider.cc: For 2-body scattering, adjust test to term1 2229 to avoid divide-by-zero errors (see 19 Jan 2011, tag -00). 2230 2231 13 April 2011 Michael Kelsey 2232 ---------------------------- 2233 - G4NucleiModel: Encapsulate trailing effect test in ::passTrailing(). 2234 2235 13 April 2011 Michael Kelsey (hadr-casc-V09-04-07) 2236 -------------------------------------------------- 2237 Deploying operational rescattering. This code requires modifications to 2238 G4VIntraNuclearTransportModel.hh and G4TheoFSGenerator.hh which are included 2239 in the geant4-09-04-ref-03 build. 2240 2241 NOTE: In testing, some input cascades lead to nuclei with excessive 2242 excitation energy; this code should not be used in production. 2243 2244 - G4CascadeInterface.cc: Add construction of bullet from cached copy of 2245 original projectile, saved by G4TheoFSGenerator. 2246 2247 - G4InuclCollider.cc: Adjust diagnostic messages in ::rescatter() to match 2248 those in ::collide(). 2249 2250 - G4IntraNucleiCascader.cc: Reduce number of retries from 1000 to 100. 2251 2252 28 March 2011 Michael Kelsey 2253 ---------------------------- 2254 - G4CascadeCheckBalance.hh: Add non-limit ctor and explicit limit setting. 2255 - G4CascadeInterface.cc: Set internal E/p limits to match Gunter's below 2256 (currently 5% and 10 MeV, want to make them tighter). 2257 2258 28 March 2011 Gunter Folger 2259 ---------------------------- 2260 - Set up for E/p checking by G4HadronicProcess in ctor of G4CascadeInterface. 2261 2262 24 March 2011 Michael Kelsey 2263 ---------------------------- 2264 - G4NucleiModel: Add optional argument to reset() with list of collision 2265 points, for copying cascade state when rescattering. 2266 2267 - G4IntraNucleiCascader: Add list of hit-nucleon locations, filled by 2268 copyWoundedNucleus() for initialization of G4NucleiModel (above). 2269 2270 24 March 2011 Dennis Wright (hadr-casc-V09-04-06) 2271 ------------------------------------------------- 2272 - G4NucleiModel - add trailing effect 2273 2274 23 March 2011 Michael Kelsey 2275 ---------------------------- 2276 - G4CollisionOutput.hh: Add non-const accessors for lists. 2277 2278 21 March 2011 Michael Kelsey (hadr-casc-V09-04-03-01, -V09-04-05) 2279 -------------------------------------------------- 2280 Fixes for compiler warnings (and one error on Windows). The -03-01 tag 2281 backs out change to G4NucleiModel.cc in -04 tag, which will be restored to 2282 the HEAD. 2283 2284 - G4InuclElementaryParticle: Make getStrangeness() and getStrangeness(type) 2285 both return G4int. 2286 - G4CascadeColliderBase.hh: Hide names of arguments to rescatter(). 2287 - G4NucleiModel.cc: Replace strtof() with strtod(). 2288 2289 18 March 2011 Michael Kelsey (hadr-casc-V09-04-04) 2290 -------------------------------------------------- 2291 - G4NucleiModel.cc: Change internal length scale to use femtometers 2292 directly (instead of apparent 2.8197 fm), and internal cross-section scale 2293 to use fm^2 (instead of millibarns). 2294 2295 17 March 2011 Michael Kelsey (hadr-casc-V09-04-03) 2296 -------------------------------------------------- 2297 Tag all revisions for deployment in next reference build. 2298 2299 1) Implement most of rescattering capability (G4CascadeInterface::Propagate 2300 and dependent code). Substantial factoring of ::collide() functions to 2301 allow functional reuse by ::rescatter(). Not operational without code 2302 to capture and use primary projectile. 2303 2304 2) Simplify cascade test-and-repeat loops; do four-momentum balancing with 2305 nuclear fragment, now used exclusively as G4Fragment, at end of cascade, 2306 not after de-excitation. 2307 2308 16 March 2011 Michael Kelsey 2309 ---------------------------- 2310 More improvements to rescattering code. Not yet functional without code to 2311 construct "bullet" from original projectile. 2312 2313 - G4CascadeInterface: Simplify target-construction functions by moving 2314 active code to one with simple (A,Z) arguments. 2315 2316 - G4CollisionOutput.cc: Add reset() at start of trivialize(). 2317 2318 - G4IntraNucleiCascader: Add functions to convert single G4KineticTrack to 2319 G4CascadParticle (move out of preloadCascade()), and to decay G4KT 2320 hadronic resonances in situ. Improve diagnostic messages. 2321 2322 - G4InuclElementaryParticle.cc: Move K0S/K0L "mixing" to K0/K0bar into type(). 2323 2324 11 March 2011 Michael Kelsey 2325 ---------------------------- 2326 - G4CollisionOutput: Include G4Fragment as part of final state for 2327 setOnShell() (including computing totalOutputMomentum). Note that the 2328 four-momentum in G4Fragment is in GEANT4 units (MeV), not Bertini units! 2329 2330 - G4IntraNucleiCascader.cc: Reorganize post-cascade handling to do 2331 setOnShell() check for all cases, allowing G4Fragment to be adjusted. 2332 This should leave final state fully balanced before InuclCollider sees it. 2333 2334 - G4InuclCollider.cc: Simplify de-excitation handling (fragment test is in 2335 deexcite() function). Suppress momentum-conservation check on de-excitation 2336 unless G4CASCADE_CHECK_ECONS compiler flag was used, as all functions have 2337 been confirmed to conserve four-momentum. 2338 2339 8 March 2011 Michael Kelsey 2340 --------------------------- 2341 - G4InuclCollider: Move post-cascade (deexcitation) block out of collide() 2342 to separate function. Pass G4Fragment instead of G4InuclNuclei. 2343 2344 - G4IntraNucleiCascader.cc: Don't put recoil "nucleus" onto output list. 2345 2346 - G4CollisionOutput.cc, G4InuclNuclei.cc: Follow additions to G4Fragment 2347 interface to store and access charged and neutral holes separately. 2348 2349 4 March 2011 Michael Kelsey (kelsey-20110304) 2350 --------------------------------------------- 2351 Continue development of rescattering infrastructure. All executable 2352 functionality should be in place, BUT no "bullet" is available yet, so code 2353 (especially conservation checks) will crash with segmentation fault. 2354 2355 - G4CascadeColliderBase.hh: Add ::rescatter() interface with null body, to 2356 enforce common interface in all (both) affected colliders. 2357 2358 - G4CascadeInterface: Move conversion functions used by ::Propagate() from 2359 here down to G4IntraNucleiCascader. Just pass input arguments through. 2360 Convert cascade results to G4ReactionProducts for ::Propagate() output. 2361 2362 - G4IntraNucleiCascader: Move conversion functions used by ::Propagate() to 2363 here from G4CascadeInterface. Replace ::rescatter() interface to take 2364 arguments from ::Propagate and do conversion locally. Remove unnecesary 2365 "itry" arguments from cascade functions. 2366 2367 - G4InuclCollider: Follow ::rescatter() interface change above, passing 2368 arguments from G4CascadeInterface through to G4IntraNucleiCascader. 2369 2370 - G4NucleiModel.hh: Add optional arguments to reset() to force values of 2371 neutron and proton counts (default behaviour is unchanged). 2372 2373 3 March 2011 Michael Kelsey 2374 --------------------------- 2375 - G4CascadeInterface: Change name of "bulletList" to "inputFragments". 2376 2377 - G4CascadeRecoilMaker.cc: Add diagnostic message to ::wholeEvent(). 2378 2379 - G4IntraNucleiCascader: Add function to copy input cascade particles to 2380 local list for propagation, move clearing functions to separate action. 2381 2382 - G4NucleiModel.hh: Add accessors for radius (including zone radii), 2383 mapping radial position to zone index, and converting radius units. 2384 2385 - G4NucleiModel.cc: Add a couple of FIXME messages about binding_energies[]. 2386 2387 3 March 2011 Michael Kelsey (kelsey-20110303) 2388 --------------------------------------------- 2389 - G4CascadeDeexcitation.cc: Don't do conservation check at end of process. 2390 - G4CascadeInterface.cc: Rearrange messages for G4CASCADE_DEBUG_INTERFACE. 2391 - G4CascadeOutput.cc: Fix diagnostic message reporting initial momentum. 2392 - G4IntraNucleiCascader.cc: Move model->printModel() call to G4NucleiModel. 2393 - G4NucleiModel.cc: Put printModel() call at end of generateModel(). 2394 - G4CascadeRecoilMaker.cc: Add diagnostics to goodNucleus(). 2395 - G4CollisionOutput.cc: Move ini_mom calculation to fix diagnostic output. 2396 2397 28 February 2011 Michael Kelsey (kelsey-20110228) 2398 ------------------------------------------------- 2399 Continue infrastructure development for rescattering. 2400 2401 - G4CascadeInterface: New ::copyPreviousCascade() to transfer rescattering 2402 into to Bertini particles, along with data buffers for the converted list. 2403 New ::makeReactionProduct() for conversion of internal to external 2404 hadronic-tracks. New ::makeCascadParticle() for conversion of pre-cascade 2405 G4KineticTrack to Bertini type. 2406 2407 - G4InuclCollider.cc: Set verbosity when de-excitation module is changed. 2408 2409 25 February 2011 Michael Kelsey (kelsey-20110225b) 2410 -------------------------------------------------- 2411 Develop infrastructure to support using Bertini as a "rescattering" model 2412 for the output of the FTF simulation. 2413 2414 - G4CascadeColliderBase: Add ::setVerboseLevel() function which passes 2415 verbosity through to G4CheckBalance data member. 2416 2417 - G4CascadeInterface: Add ::createTarget(G4V3DNucleus*). Move setVerboseLevel 2418 implementation to .cc file, and propagate verbosity to member objects. 2419 Move conservation checking to separate function. Begin to populate Propagate 2420 function. 2421 2422 - G4IntraNucleiCascader: Split ::collide() into separate utility functions 2423 to handle different stages of cascade process (initialization, cascade 2424 development, final state). Add new ::rescatter() function which takes a 2425 list of pre-existing secondaries as input to "seed" the processing. Add 2426 setVerboseLevel implementation, and propagate verbosity to member objects. 2427 2428 - G4InuclCollider: Add ::rescatter() function which calls through to 2429 G4IntraNucleiCascader(), and setVerboseLevel implementation. 2430 2431 NOTE: G4InuclCollider above was accidentally commited to kelsey-20110225a 2432 2433 25 February 2011 Michael Kelsey (kelsey-20110225a) 2434 -------------------------------------------------- 2435 Infrastructure improvements to support modifying output particle lists 2436 2437 - G4CollisionOutput: Add ::removeXXX() interfaces to take particles off of 2438 lists. 2439 2440 - G4InuclParticle.hh, G4InuclNuclei.hh, G4ExitonConfiguration.hh: Add 2441 equality and inequality operators. NOTE: Sorting (operator<) NOT SUPPORTED. 2442 2443 23 February 2011 Michael Kelsey (hadr-casc-V09-04-02) 2444 ----------------------------------------------------- 2445 - G4NucleiModel: Bring changes for parametrizing "rescaled" nuclear model 2446 parameters from orphaned CVS tag kelsey-20101020b into HEAD of SVN. The 2447 scale factors are set specifically to reproduce the existing production 2448 code, but will be adjusted to give the model "natural units" (fm lengths 2449 and millibarn cross sections). Use environment variables to set scale 2450 factors: 2451 2452 G4NUCMODEL_RAD_SCALE (3.3836/1.2 ~ 2.8197) 2453 Internal length scale (conversion from femtometers). All of the 2454 lengths in G4NucleiModel are larger by this factor than one would 2455 expected from the literature. To do all of the model parameter 2456 calculations in fm, this scale factor should be set to 1. 2457 2458 G4NUCMODEL_RAD_2PAR (not defined) 2459 The current model computes the nuclear radius as a one-parameter 2460 function of mass: 1.2*cbrt(A) (multiplied by the length scale 2461 above). A better parametrization is 1.16*cbrt(A) - 1.3456/cbrt(A); 2462 setting this environment variable chooses that parametrization. 2463 2464 G4NUCMODEL_RAD_SMALL (8.0/G4NUCMODEL_RAD_SCALE) 2465 For nuclei below A=5 (alphas, tritons, etc.), instead of the 2466 mass-dependent scaling, a constant radius is used. In the current 2467 model, a value of 8.0 (corresponding to 2.83 fm) is set; published 2468 data suggests 1.992 fm instead. 2469 2470 G4NUCMODEL_RAD_ALPHA (0.70) 2471 This scale factor multiplies G4NUCMODEL_RAD_SMALL to account for the 2472 anomalous binding energy of alphas compared to nearby light nuclei. 2473 Published data suggests a value of 0.84 instead. 2474 2475 G4NUCMODEL_FERMI_SCALE (0.685) 2476 This factor converts from the length scale (cbrt(volume)) to the 2477 Fermi momentum for each nuclear species. Published data suggests a 2478 value of 0.61 GeV/fm instead. 2479 2480 G4NUCMODEL_XSEC_SCALE (1.) 2481 Scaling factors for total cross-sections. The current code has all 2482 the cross sections in millbarns. If we are able to migrate to a 2483 length scale in femtometers, this factor will change to 10. to 2484 convert mb to fm^2. 2485 2486 14 February 2011 Michael Kelsey (hadr-casc-V09-04-01) 2487 ----------------------------------------------------- 2488 - G4InuclParticle: Continue migration to enumerator Model. Replace 2489 previous enum word "default" with "DefaultModel", add "PreCompound". 2490 2491 - G4InuclNuclei, G4InuclElementaryParticle: Follow G4InuclParticle::Model 2492 migration, and drop use of "generation." 2493 2494 - G4CascadeRecoilMaker: Replace integer model with G4InuclParticle::Model. 2495 2496 - G4BigBanger.cc, G4CollisionOutput.cc, G4ElementaryParticleCollider.cc, 2497 G4EqulibriumEvaporator.cc, G4Fissioner.cc, G4NonEquilibriumEvaporator.cc, 2498 G4PreCompoundDeexcitation.cc: Replace integer model code with 2499 G4InuclParticle::Model enumerator values. 2500 2501 31 January 2011 Michael Kelsey 2502 ------------------------------ 2503 - G4IntraNucleiCascader.cc: Move "momentum_in" calculation inside verbosity. 2504 2505 - G4InuclElementaryParticle.hh: Change getStrangeness() to return int, use 2506 as pseudo-bool in hyperon() implementation. Drop local "generation" data 2507 member, not used anywhere. 2508 2509 - G4InuclParticle.hh: Change "modelId" to enumerated type. Will require 2510 numerous changes throughout code. 2511 2512 19 January 2011 Michael Kelsey (hadr-casc-V09-04-00) 2513 ---------------------------------------------------- 2514 - G4ElementaryParticleCollider.cc: In sampleCMcosFor2to2(), protect against 2515 divide-by-zero by testing for term1==0. before other computations. 2516 Addresses ~10^-7 FPE rate reported by A. Dotti. 2517 2518 16 January 2011 Michael Kelsey 2519 ------------------------------ 2520 - G4InuclParticleNames.hh: Add enumerator values for some light ions as 2521 "elementary particles," and names for antibaryons and light antinuclei. 2522 These will support upcoming developments, but are not currently used. 2523 2524 - G4InuclElementaryParticle.hh: Add antinucleon() and antibaryon() flags 2525 (the latter will cover the light-ion cases). 2526 2527 - G4InuclElementaryParticle.cc: Add switch cases for new particles above. 2528 2529 24 November 2010 Michael Kelsey (hadr-casc-V09-03-87) 2530 ----------------------------------------------------- 2531 - G4InuclCollider.cc: Delete local "zbullet" before exiting. Fixes memory 2532 leak reported for 9.4 cand-01. 2533 2534 19 November 2010 Michael Kelsey (hadr-casc-V09-03-86) 2535 ----------------------------------------------------- 2536 - G4NucleiModel.cc: Put messages related to negative-path-length and 2537 zero-interaction-partners behind verbosity flag. 2538 2539 29 October 2010 Michael Kelsey (hadr-casc-V09-03-85) 2540 ---------------------------------------------------- 2541 - G4NucleiModel: Bring tagged version kelsey-20101020 (refactoring) to HEAD 2542 and tag for 9.4 release. This is the last substantive modification to be 2543 included; validated by direct |diff|ing of output vs. V09-03-84 code. 2544 2545 22 October 2010 Michael Kelsey (hadr-casc-V09-03-84) 2546 ---------------------------------------------------- 2547 - G4WatcherGun.cc: Change first numeric argument to G4NuclWatcher to int. 2548 2549 NOTE: Only this change is include in tag. 2550 2551 20 October 2010 Michael Kelsey (kelsey-20101020b) 2552 ------------------------------------------------- 2553 - G4NucleiModel: Add scaling factors ("units") for nuclear radii and 2554 cross-sections, in order to adapt calculations to the literature. 2555 2556 20 October 2010 Michael Kelsey (kelsey-20101020a) 2557 ------------------------------------------------- 2558 - G4NucleiModel: Re-activate changes in worthToPropagate() to use existing 2559 nuclear potential values for kaons and hyperons to decide on trapping. 2560 2561 20 October 2010 Michael Kelsey (kelsey-20101020) 2562 ------------------------------------------------ 2563 - G4NucleiModel: Clean up some bugs in refactoring generateModel(). Back 2564 out changes (28 Sep) in worthToPropagate() in order to compare refactored 2565 to production code. 2566 2567 20 October 2010 Michael Kelsey (hadr-casc-V09-03-83) 2568 ---------------------------------------------------- 2569 - G4CascadParticle.cc: Remove debugging output left in by accident. 2570 2571 NOTE: Tag does not include reorganization of G4NucleiModel (5 Oct 2010) 2572 2573 19 October 2010 Michael Kelsey 2574 ------------------------------ 2575 G4FissionStore, G4FissionConfiguration: Undo migration to integer A and Z. 2576 2577 19 October 2010 Michael Kelsey 2578 ------------------------------ 2579 Clean up CoVerity software analysis reports (three are ignored from obsolete 2580 code): 2581 G4Analyser.cc 2582 G4CascadeCheckBalance.cc 2583 G4CascadeInterpolator.icc 2584 G4CascadeSampler.icc 2585 G4CollisionOutput.cc 2586 G4ElementaryParticleCollider.cc 2587 G4InuclCollider.cc 2588 G4NuclWatcher.cc 2589 G4NucleiModel.hh,cc 2590 G4RegionModel.cc 2591 2592 14 October 2010 Michael Kelsey 2593 ------------------------------ 2594 - G4NucleiModel.cc: Fix misspelled "G4doulbe" -> G4double. 2595 2596 Pick up several missed bits of the "integer A and Z migration," mostly in 2597 test and diagnostic code: 2598 2599 G4Analyser.hh,cc 2600 G4FissionConfiguration.hh 2601 G4FissionStore.hh,cc 2602 G4NuclWatcher.hh,cc 2603 2604 14 October 2010 Michael Kelsey (hadr-casc-V09-03-82) 2605 ---------------------------------------------------- 2606 - G4CascadParticle.cc: Add protection in getPathToTheNextZone() so that d2 2607 is always computed non-negative. Avoids 10^-5 FPEs. 2608 2609 05 October 2010 Michael Kelsey 2610 ------------------------------ 2611 - G4NucleiModel: Major reorganization of generateModel() code. 2612 1) Rename integration functions from "volNumInt[1]" to "zoneIntegralxxx" 2613 with "xxx" = "WoodsSaxon" or "Gaussian". 2614 2) Move hardwired constants out to static data members, give clear names. 2615 3) Split function into separate pieces to set binding energies, zone 2616 radii, volume/density values, and potential heights. 2617 4) Within new functions, simplify if-cascades where possible, eliminate 2618 duplicated code. 2619 5) Move std::vector<> buffers out to data members. 2620 2621 Also, modify worthToPropagate() to use non-nucleon potential heights to 2622 terminate propagation. Previously, non-nucleons could never fail, as the 2623 "getFermiKinetic" always returned zero. 2624 2625 28 September 2010 Michael Kelsey (hadr-casc-V09-03-81) 2626 ------------------------------------------------------ 2627 - G4BigBanger: Missed some integer A/Z migrations, which caused a bus error 2628 in test47. 2629 2630 26 September 2010 Michael Kelsey (hadr-casc-V09-03-80) 2631 ------------------------------------------------------ 2632 - G4VCascadeDeexcitation.hh: NEW abstract base class for post-cascade 2633 processing. Some common activities will be implemented here from the two 2634 actual modules. 2635 2636 - G4CascadeDeexcitation, G4PreCompoundDeexcitation: Use new base class 2637 above, reorganize code in collide() to use new deExcite(G4Fragment*) where 2638 appropriate. 2639 2640 - G4InuclCascader.hh: Reference new base class for de-excitation modules. 2641 2642 25 September 2010 Michael Kelsey 2643 -------------------------------- 2644 - G4CascadeColliderBase: Add explosion(G4Fragment*) and explosion(A,Z,Eexc). 2645 Move implementation to latter, and write others as call-throughs. Add 2646 Z==0 condition for explosion, regardless of A. 2647 2648 - G4EquilibriumEvaporator.hh: Remove explosion(G4InuclNuclei*), as 2649 unnecessary. Existing explosion(A,Z,E) now overrides base class. 2650 2651 - G4CollisionOutput: Add function to process G4ReactionProducts from 2652 PreCompound. 2653 2654 - G4PreCompoundDeexcitation.cc: Move G4ReactionProducts loop to 2655 G4CollisionOutput. 2656 2657 24 September 2010 Michael Kelsey 2658 -------------------------------- 2659 - G4IntraNucleiCascader.cc: Minor shuffle of post-cascade recoil checking, 2660 in preparation for moving fragment construction and processing away. 2661 2662 - G4CollisionOutput.cc: Replace names "TargetFragment*" and "NucleiFragment*" 2663 with "OutgoingNuclei" and "OutgoingNucleus" for consistency with 2664 "OutgoingParticles" names. This affects the following source files, all 2665 of which are modified to match (using |sed|): 2666 2667 cascade/include/G4Analyser.hh 2668 cascade/include/G4CollisionOutput.hh 2669 cascade/src/G4Analyser.cc 2670 cascade/src/G4CascadeCheckBalance.cc 2671 cascade/src/G4CascadeDeexcitation.cc 2672 cascade/src/G4CascadeInterface.cc 2673 cascade/src/G4CollisionOutput.cc 2674 cascade/src/G4EquilibriumEvaporator.cc 2675 cascade/src/G4Fissioner.cc 2676 cascade/src/G4IntraNucleiCascader.cc 2677 cascade/src/G4InuclCollider.cc 2678 cascade/src/G4InuclEvaporation.cc 2679 cascade/src/G4NonEquilibriumEvaporator.cc 2680 cascade/src/G4PreCompoundDeexcitation.cc 2681 2682 - G4CollisionOutput: Add new G4Fragment data member, with get() and add() 2683 accessors. This fragment is *not* used by setOnShell() or by any of the 2684 event-total calculations. It will be filled by G4IntraNucleiCascader for 2685 use by de-excitation modules. Include G4Fragment in diagnostic output if 2686 not empty. 2687 2688 - G4CascadeRecoilMaker.cc: Remove G4Fragment::SetExcitationEnergy() call. 2689 2690 - G4InuclNuclei: Add new constructor to create from G4Fragment input, and 2691 new makeG4Fragment() to spit out a G4Fragment. Also provide a casting 2692 operator for the latter. 2693 2694 24 September 2010 Michael Kelsey (hadr-casc-V09-03-79) 2695 ------------------------------------------------------ 2696 Fix numerous compilation warnings on Linux (not seen on MacOSX) left over 2697 from migration to integer A and Z (-73 tag). 2698 2699 G4BigBanger.cc 2700 G4CascadeCheckBalance.hh 2701 G4CascadeColliderBase.cc 2702 G4CascadeRecoilMaker.cc 2703 G4EquilibriumEvaporator.hh,cc 2704 G4ExitonConfiguration.hh 2705 G4Fissioner.cc 2706 G4InuclCollider.cc 2707 G4NonEquilibriumEvaporator.cc 2708 G4NucleiModel.cc 2709 2710 - G4PreCompoundDeexcitation.cc: Drop "G4int" casts as no longer required. 2711 2712 23 September 2010 Michael Kelsey (hadr-casc-V09-03-78) 2713 ------------------------------------------------------ 2714 - G4CascadeInterface, G4InuclCollider: change user selection function name 2715 to usePreCompoundDeexcitation(), per Julia Yarba. 2716 2717 - G4PreCompoundCascadeInterface.hh,.cc, G4PreCompountInuclCollider.hh,.cc: 2718 REMOVE THESE CLASSES. These were copied and modified versions of the 2719 standard versions, in order to test the new pre-compound de-excitation. 2720 That has been integrated with runtime flags, so the parallel versions are 2721 not required. 2722 2723 23 September 2010 Michael Kelsey 2724 -------------------------------- 2725 - G4InuclElementaryParticle.cc: Drop warning message when converting 2726 G4ParticleDefinition to type code. 2727 2728 - G4CascadeInterface: Add functions for user selection of which 2729 post-cascade module to use for de-excitation of the residual nucleus. 2730 These call through to the equivalent G4InuclCollider functions. 2731 2732 - G4InuclCollider: Add functions for user selection of which 2733 post-cascade module to use for de-excitation of the residual nucleus. 2734 These delete and re-instantiate the appropriate de-excitation "collider". 2735 2736 - G4PreCompoundDeexcitation: Remove convertFragment() function, remove 2737 pass-by-value std::vector<> from getDeExcitedFragments() (use data member 2738 instead). Clean up some obsolete code usage. 2739 2740 - G4CascadeRecoilMaker: Change fragment-making interface: 2741 makeRecoilNuclei() now returns G4InuclNuclei* for standard Bertini colliders. 2742 makeRecoilFragment() returns G4Fragment* for external PreCompound models. 2743 addExcitonConfiguration() sets local copy of excitons, needed in order to 2744 call the individual G4Fragment->Setxxx() functions. 2745 2746 - G4IntraNucleiCascader.cc: Follow renaming RecoilMaker::makeRecoilNuclei(), 2747 use new addExcitonConfiguration(). 2748 2749 - G4CascadeRecoilMaker: Change fragment-making interface: 2750 makeRecoilNuclei() now returns G4InuclNuclei*. 2751 makeRecoilFragment() returns G4Fragment*. 2752 addExcitonConfiguration() sets local copy of excitons, needed in order to 2753 call the individual G4Fragment->Setxxx() functions. 2754 2755 - G4IntraNucleiCascader.cc: Follow renaming RecoilMaker::makeRecoilNuclei(), 2756 use new addExcitonConfiguration(). 2757 2758 22 September 2010 Michael Kelsey 2759 -------------------------------- 2760 - G4CascadeMomentum.hh: This should have been removed from the package long 2761 ago. Apologies for the oversight. 2762 2763 22 September 2010 Julia Yarba 2764 ----------------------------- 2765 Added 1st prototype of interface between Bartini cascade and PreCompound model 2766 (post-cascade de-excitation). 2767 2768 Changes only to: 2769 /geant4/source/processes/hadronic/models/cascade/cascade 2770 2771 New developments are those G4PreCompound* classes; the GNUmakefile adapted to 2772 include necessary links. 2773 2774 The PreComp wrapper is G4PreCompundDeexcitation class. 2775 2776 The logic, loops, conditions, etc., in the event processing are the same as in 2777 the "native" Bertini code. I actually copied it over from G4CascadeInterface, 2778 and started from there. 2779 2780 However, there're a few technical changes that I'd like to mention. 2781 2782 1. G4PreCompoundInterface inherits directly from G4HadronicInteraction. 2783 I felt that we'd not need G4VIntra..., because its only advantage is a pointer 2784 (and related access methods) to G4VPreCompoundModel. 2785 This has now moved to the de-excitation wrapper. 2786 2787 2. In the Collider itself, I've made the data member to be 2788 G4CascadeColliderBase* theDeexcitation 2789 This way, it can be transparently set to the native one or the PreComp one 2790 (both inherit from G4CascadeColliderBase). 2791 2792 3. There's a setDeExcitation(...) methond in the collider, and also in the interface 2793 (which will pass it down to the collider). 2794 2795 19 September 2010 Michael Kelsey (hadr-casc-V09-03-77) 2796 ------------------------------------------------------ 2797 - G4CascadeInterface.cc: Bug fix to logic in retryInelasticNucleus() 2798 2799 17 September 2010 Michael Kelsey (hadr-casc-V09-03-76) 2800 ------------------------------------------------------ 2801 - G4CascadeInterface: Add support to pass nucleus projectiles into 2802 collider. Not tested or guaranteed to work, but G4IntraNucleiCascader is 2803 supposed to deal with them. 2804 2805 16 September 2010 Michael Kelsey 2806 -------------------------------- 2807 - G4CascadeInterface: Extensive reorganization, moving most 2808 functionality out of ApplyYourself and into small member functions. 2809 Complicated end-of-loop conditions encapsulated. Data members made into 2810 pointers to hide dependences from outside world. 2811 2812 16 September 2010 Michael Kelsey (hadr-casc-V09-03-75) 2813 ------------------------------------------------------ 2814 - G4CascadeInterface.cc: Add parentheses in end-of-while block to fix 2815 compilation warning in GCC 4.3. 2816 2817 - G4IntraNucleiCascader.cc: In decayTrappedParticle(), check for photon 2818 daughters and put them directly onto output list. 2819 2820 16 September 2010 Michael Kelsey 2821 -------------------------------- 2822 - G4CascadParticle.hh: Make getGeneration() const. 2823 2824 - G4CascadeDeexcitation.hh: Fix compiler warning about order of data members. 2825 2826 - G4IntraNucleiCascader: Intercept hyperons which are "trapped" in nuclear 2827 potential, and decay them immediately to produce usable secondaries. This 2828 resolves problem with sub-MeV final-state hyperons (reported by A. Dotti), 2829 but is not entire correct. Properly, the hyperon should be incorporated 2830 into a hypernucleus fragment. 2831 2832 - G4InuclElementaryParticle.hh: Add hyperon() identification function, and 2833 constructor to take G4DynamicParticle directly. 2834 2835 - G4InuclParticle.hh, G4InuclNuclei.hh: Add constructor to take 2836 G4DynamicParticle directly. 2837 2838 15 September 2010 Michael Kelsey (hadr-casc-V09-03-74) 2839 ------------------------------------------------------ 2840 - G4CascadeDeexcitation: NEW collider to handle post-cascade processing of 2841 nuclear fragment. Encapsulates BigBanger and Evaporators. Eventually 2842 will have alternative (configurable or #ifdef) implementation using G4 2843 external "pre-compound" models instead of Bertini factories. 2844 2845 - G4InuclCollider: Remove post-cascade colliders (BigBanger, Evaporators), 2846 replace with new G4CascadeDeexcitation. 2847 2848 - G4LorentzConverter: Move construtor implementations to .cc file, and make 2849 sure all constructors have initializers for all data members. 2850 2851 14 September 2010 Michael Kelsey (hadr-casc-V09-03-73) 2852 ------------------------------------------------------ 2853 Migrate to integer A and Z values for nuclear configurations. Includes both 2854 explicit arguments for G4InuclNuclei, and function arguments, computational 2855 parameters involved in nuclear configurations, breakup, etc. 2856 2857 G4CascadeCheckBalance.cc 2858 G4CascadeInterface.cc 2859 G4CascadeRecoilMaker.hh 2860 G4Fissioner.hh,cc 2861 G4InuclEvaporation.cc 2862 G4InuclNuclei.hh,cc 2863 G4InuclSpecialFunctions.hh 2864 G4NonEquilibriumEvaporator.hh,cc 2865 G4NucleiModel.hh,cc 2866 G4PreCompoundCascadeInterface.cc 2867 bindingEnergy.cc 2868 bindingEnergyAsymptotic.cc 2869 nuclearLevelDensity.cc 2870 paraMaker.cc 2871 2872 - G4InuclSpecialFunctions.hh: Eliminate bindingEnergy functions which are 2873 no longer used, along with their .cc files: 2874 2875 bindingEnergyKummel 2876 bindingEnergyExact 2877 2878 Migration validated using 100 events (20 GeV pi+ on lead) with verbose==4. 2879 Entire log files (9.6M lines, 433 MB) identical before and after migration. 2880 2881 13 September 2010 Michael Kelsey 2882 -------------------------------- 2883 - G4InuclElementaryParticle: Move printParticle() implementation to .cc, 2884 and add printing of particle name to output. 2885 2886 - G4InuclNuclei.cc: Move base-class printing to first line of output, to 2887 match G4InuclEP. 2888 2889 10 September 2010 Michael Kelsey (hadr-casc-V09-03-72) 2890 ------------------------------------------------------ 2891 - G4CascadeRecoilMaker: Add new goodNucleus() function with functionality 2892 from G4IntraNucleiCascader::goodCase(). Add parameter to set "rounding 2893 tolerance" for small/negative mass differences. Drop getRecoilFragment() 2894 in favor of user calling makeRecoilFragment() directly (instead of doing 2895 it collide()), which returns a non-const pointer. 2896 2897 - G4IntraNucleiCascader: Remove previously introduced getResidualMass() and 2898 makeResidualFragment() functions, along with G4InuclNuclei object. 2899 Replace with new RecoilMaker utility. Move goodCase() to RecoilMaker, and 2900 begin to simplify end-of-cascade processing. 2901 2902 - G4ExitonConfiguration.hh: Add function to reset values to zero. 2903 2904 - G4InuclNuclei: Add function to zero out exciton configuration, and use 2905 it in fill() functions. 2906 2907 9 September 2010 Michael Kelsey 2908 ------------------------------- 2909 - G4CascadeCheckBalance: Add new collide() interface to take lists of both 2910 G4InuclElementaryParticles and G4CascadParticles; supports use by 2911 G4IntraNucleiCascader and G4CascadeRecoilMaker. 2912 2913 - G4CascadeRecoilMaker: NEW pseudo-Collider class to compute the nuclear 2914 recoil kinematics of a cascade, either in process or completed. To be 2915 used by G4IntraNucleiCascader; uses G4CascadeCheckBalance to do work. 2916 2917 6 September 2010 Michael Kelsey (hadr-casc-V09-03-71) 2918 ----------------------------------------------------- 2919 - G4NucleiModel: Add protections in generateInteractionPartners() so that 2920 nucleon and quasideuteron interactions are only selected if there are 2921 "enough" nucleons of the necessary type still available (xxxNumberCurrent). 2922 2923 - G4InuclNuclei: Add fill() functions which overwrite the entire particle 2924 structure, with same argument lists as constructors. Will be used mainly 2925 by G4IntraNucleiCascader::makeResidualFragment(). 2926 2927 - G4IntraNucleiCascader: Hide non-physical nucleus message behind verbose 2928 flag. Add function and data member to build recoil nucleus (fragment) at 2929 end of every iteration; will eventually replace functionality of 2930 getResidualMass(). 2931 2932 2 September 2010 Michael Kelsey (hadr-casc-V09-03-70) 2933 ----------------------------------------------------- 2934 - G4NucleiModel.cc: Restore hadr-casc-V09-03-68 revision 1.71, and remove 2935 the two resize(3) actions. 2936 2937 NOTE: The exercise below has (finally) resolve the cross-section 2938 discrepancy reported by Sunanda Banerjee back in July. It turns out that my 2939 use of "resize(3)" to pre-allocate the qdeutron and acsec buffers on each 2940 interaction was incorrect. This doesn't just reserve memory, it fills the 2941 vectors with three elements, so that subsequent push_back()'s fill [3], [4], 2942 etc. 2943 2944 2 September 2010 Michael Kelsey 2945 ------------------------------- 2946 - G4NucleiModel.cc: Reverted to hadr-casc-V09-03-38 revision 1.45, and 2947 interface changes incorporated. See NOTE below from 28 July 2010. 2948 Cross-section changes have not been resolved or validated. Since -38 2949 revision has better data/MC matching (ratio near 1), it is restored as the 2950 baseline version, and changes will be re-done incrementally. 2951 2952 Each increment after (0) is tagged "kelsey-20100902x", x=a,b,c,d etc. 2953 2954 0) Implement new ctor and generateModel() calls 2955 Make cross-section tables statically initialized 2956 Include absorptionCrossSection definition 2957 1) Use lookup tables for cross-sections, and new interpolator 2958 Change CHC_CHECK to G4CASCADE_DEBUG_CHARGE 2959 2) Use this package's bindingEnergy() function 2960 3) Update diagnostic messages and verbosity levels; 2961 Add missing initializers to all constructors; 2962 Use data-member buffer for G4CollisionOutput 2963 4) Use generateWithRandomAngles() everywhere appropriate; 2964 Collapse if-cascades to use if-return where possible 2965 5) Make generateModel() re-usable with data-member buffers 2966 6) Energy-momentum conservation checking; 2967 Implement generateNucleonMomentum; 2968 Remove extraneous semicolons and blank lines 2969 7) Use local variables in passFermi(); 2970 Fix some minor LorentzVector calculations; 2971 Use generateNucleonMomentum() for quasi-deuterons 2972 8) Use data-member buffers for quasideuterons, coords, mom. 2973 9) Use enum labels for quasideuteron codes 2974 10) Restore Dennis' improved potential (6-zone) calculations 2975 2976 4 August 2010 Michael Kelsey (hadr-casc-V09-03-69) 2977 -------------------------------------------------- 2978 - G4CascadeData: Add name data member and optional ctor argument, use 2979 when printing tables. 2980 2981 - G4CascadeFunctions.icc: Pretty-up printing output using name string. 2982 2983 - G4Cascade*Channel.cc: Add name string to data() ctor, use central part of 2984 class name, e.g., "PiMinusP" for G4CascadePiMinusPChannel. 2985 2986 - G4ElementaryParticleCollider.cc: Add printing of all final-state tables, 2987 one time only, protected by G4CASCADE_DEBUG_SAMPLER. 2988 2989 - GNUmakefile: Add G4CASCADE_DEBUG_SAMPLER preprocessor flag. 2990 2991 3 August 2010 Michael Kelsey (hadr-casc-V09-03-68) 2992 -------------------------------------------------- 2993 - G4CascadeData.hh: Add print() and printXsec() functions to dump tables. 2994 - G4CascadeData.icc: Move implementations out of G4CascadeData.hh file. 2995 2996 - G4CascadeFunctions.hh,icc: Add printTable() to dump tables. 2997 2998 - G4CascadeInterpolator.hh,icc: Add printBins() to dump energy bin edges. 2999 3000 - G4CascadeSampler.hh,icc: Add print() to call through to interpolator. 3001 3002 NOTE: This should be the last set of functional changes for a while. 3003 Sunanda Bannerjee reported substantial changes in validation plots for the 3004 Bertini cascade between 4.9.3-ref-05 (hadr-casc-V09-03-23-01) and 3005 4.9.3-ref-06/4.9.4-beta-01 (hadr-casc-V09-03-43). 3006 3007 28 July 2010 Michael Kelsey (hadr-casc-V09-03-67) 3008 ------------------------------------------------- 3009 - G4NucleiModel.cc: Set deuteron arrays to fixed length (3). Add A/Z 3010 values to generateModel diagnostic message. 3011 3012 - G4EquilibriumEvaporator.cc: Change some fixed length std::vector<> to 3013 simple C arrays. 3014 3015 - G4Fissioner.cc: Move G4FissionStore to class data member for reuse. 3016 3017 - G4FissionStore: Add ::clear() function to support reuse, move addConfig() 3018 implementation to .cc file. 3019 3020 - G4IntraNucleiCascader: Move G4NucleiModel to class-level data member 3021 (pointer) so it can be reused across collisions. 3022 3023 26 July 2010 Michael Kelsey 3024 --------------------------- 3025 - G4Analyzer.cc: Use const-refs for particle lists. 3026 3027 - G4BigBanger, G4ElementaryParticleCollider: Move std::vector<> buffers to 3028 .hh file to allow reuse. 3029 3030 - G4NucleiModel.cc: Simplify buffers used in generateModel() to reduce 3031 G4double allocations. 3032 3033 23 July 2010 Michael Kelsey (hadr-casc-V09-03-66) 3034 ------------------------------------------------- 3035 - G4CascadeInterface: Move G4CollisionOutput to .hh file for reuse between 3036 events. 3037 3038 - G4IntraNucleiCascader: Move buffers for cascade output to .hh file, so 3039 they can be reused between events. 3040 3041 - G4NucleiModel: Move G4CollisionOutput to .hh file for reuse; use 3042 references for bullet and target args to G4EPCollider. 3043 3044 21 July 2010 Michael Kelsey (hadr-casc-V09-03-65) 3045 ------------------------------------------------- 3046 - GNUmakefile: Add new G4CASCADE_CHECK_ECONS to turn off all of the 3047 internal conservation checks (reduce std::vector<> memory churn!). 3048 3049 - G4CascadeColliderBase.cc: Use G4CASCADE_CHECK_ECONS to set the default 3050 value of "doConservationChecks": true if defined, false if not defined. 3051 This is done with #ifdef-else-endif block, NOT some fancy macro. 3052 3053 - G4CascadeInterface.cc: Use G4CASCADE_SKIP_ECONS to toggle reporting 3054 violations before end of loop (don't need to call balance.okay() twice!). 3055 3056 - G4ElementaryParticleCollider.cc: Put verbosity check before call to 3057 validateOutput() to avoid unnecessary vector manipulations. 3058 3059 - G4IntraNucleiCascader.cc: Set doConservationChecks = true 3060 unconditionally; used to reject bad cascades. 3061 3062 - G4NucleiModel.cc: Use G4CASCADE_CHECK_ECONS to hide balance.collide(). 3063 3064 20 July 2010 Michael Kelsey (hadr-casc-V09-03-64) 3065 ------------------------------------------------- 3066 - G4CascadeColliderBase: Make G4CascadeCheckBalance a pointer member, move 3067 ctor and dtor to .cc file. Change balance tolerances to 1 per mil and 1 3068 MeV. 3069 3070 - G4InuclCollder: Make all colliders pointer members. 3071 3072 - G4IntraNucleiCascader: Make EPCollider a pointer member, and call 3073 G4CollisionOutput::setOnShell() to balance energy-momentum for null fragments. 3074 3075 - G4InuclNuclei.cc: Preserve momentum magnitude when setting excitation 3076 energy by setting mass and kinetic energy. 3077 3078 19 July 2010 Michael Kelsey (hadr-casc-V09-03-63) 3079 ------------------------------------------------- 3080 - G4CascadeCheckBalance.cc: Change zero-tolerance to 10 keV (1e-5) from 3081 1 keV (1e-6). 3082 3083 - G4CollisionOutput.hh: Fix capitalization of "numberOfOutgoingParticles". 3084 3085 - G4EquilibriumEvaporator.cc: Remove duplicate EEXS setting. 3086 3087 - G4InuclNuclei: Change implementation of setExitationEnergy() to adjust 3088 mass while keeping momentum vector constant. Currently done with 3089 "expensive" LorentzVector manipuation. Should be done by recomputing 3090 kinetic energy given new mass value. 3091 3092 - G4NonEquilibriumEvaporator.cc: Modify particle-creation block to work as 3093 G4EquilibriumEvaporator now does. Simplify some if-blocks. 3094 3095 16 July 2010 Michael Kelsey (hadr-casc-V09-03-62) 3096 ------------------------------------------------- 3097 - G4CollisionOutput: Add interfaces to handle G4CascadParticles. 3098 3099 - G4IntraNucleiCascader: Eliminate local "inter_case" data member and 3100 function. Use base class G4InteractionCase directly. Add functionality 3101 to test for conservation and recoil before exiting "itry" loop, and redo 3102 cascade if unbalanced recoil fragment. 3103 3104 - G4{PreCompound}InuclCollider.cc: Drop "setInteractionCase()" function. 3105 3106 15 July 2010 Michael Kelsey (hadr-casc-V09-03-61) 3107 ------------------------------------------------- 3108 - G4CollisionOutput: New ::add() function to combine two objects. New 3109 accessors to get total charge and baryon number. 3110 3111 - G4CascadeCheckBalance: Make tempOutput data member, for thread-safety, 3112 rather than static variables. Use new G4CollisionOutput accessors. 3113 3114 - G4IntraNucleiCascader.cc: Move local output buffers outside while loop, 3115 use std::vector<>::insert() for copying. 3116 3117 - G4InuclCollider.cc: Use new G4CollisionOutput::add() interface. 3118 3119 - G4NucleiModel.cc: Hide conservation checks behind verbose>2. Otherwise 3120 log files get too big 3121 3122 15 July 2010 Michael Kelsey (hadr-casc-V09-03-60) 3123 ------------------------------------------------- 3124 - G4CascadeCheckBalance: Add layer of protection in relativeX() (check 3125 initial values) to avoid divide-by-zero errors. Add another interface to 3126 accept list of G4CascadParticles, for use with G4NucleiModel. Add check 3127 of momentum direction balance, not just magnitudes. 3128 3129 - G4IntraNucleiCascader.cc: Rearrange end-of-loop if-blocks to allow for 3130 conservation checking prior to return. Add reporting of both too-low and 3131 too-high residual energy (at verbose=2) for single-nucleon fragments. 3132 3133 - G4InuclCollider.cc: Remove re-named conservation checks, now all done by 3134 colliders themselves. 3135 3136 - G4InuclParticle.hh: Add setKineticEnergy() function to simplify handling 3137 of some kinematics. 3138 3139 - G4NucleiModel: Add G4InuclNuclei data member (created in generateModel()), 3140 for use with conservation checks. Do check at end of generateParticleFate(). 3141 3142 15 July 2010 Michael Kelsey (hadr-casc-V09-03-59) 3143 ------------------------------------------------- 3144 - G4InuclNuclei: Use G4DynamicParticle::theDynamicalMass to carry around 3145 excitation energy (== theDynamicalMass-thePDGMass). This allows 3146 excitation to be changed on the fly, with all kinematics handled 3147 correctly. It also allows ONLY the ground state nucleus to be created as 3148 a G4Ions object (whether global or private), reducing the number of such 3149 objects by a factor of thousands. 3150 3151 14 July 2010 Michael Kelsey (hadr-casc-V09-03-58) 3152 ------------------------------------------------- 3153 - G4CollisionOutput.cc: For initial four-momentum adjustment, skip over 3154 particles which would acquire negative energy after "correction." 3155 3156 - G4ElementaryParticleCollider.cc: Bug fix for two-body final states. 3157 Kinematics should not require "rescaling." That was driven by states 3158 which were kinematically forbidden, with m1+m2 > etot_scm (e.g., pi0 p -> 3159 pi+ n with just 5 MeV kinetic energy). Now those states are caught and 3160 rejected. 3161 3162 - G4CascadeInterface.cc, G4InuclCollider.cc: Improve diagnostics reporting 3163 number of retries. 3164 3165 - G4EquilibriumEvaporator.cc: When computing residual excitation 3166 (EEXS_new), original thrown energy, S, should be used, not reboosted 3167 particle after recoil. Simplify evaporation kinematics to conserve 3168 four-momentum automatically (PEX -= mom). 3169 3170 14 July 2010 Michael Kelsey (hadr-casc-V09-03-57) 3171 ------------------------------------------------- 3172 - G4CascadeColliderBase: New subclass of G4VCascadeCollider, which takes 3173 over all of its concrete functionality, and adds conservation checker 3174 (G4CascadeCheckBalance) as data member. Wrapper functions and control 3175 flag allow colliders to user it transparently. 3176 3177 - G4VCascadeCollider: Move concrete functionality to new base class. 3178 3179 - All colliders: Change base class to new G4CascadeColliderBase. Remove 3180 local copies of conservation-checker, using new base function instead. 3181 3182 cascade/include/G4BigBanger.hh 3183 cascade/include/G4ElementaryParticleCollider.hh 3184 cascade/include/G4EquilibriumEvaporator.hh 3185 cascade/include/G4EvaporationInuclCollider.hh 3186 cascade/include/G4Fissioner.hh 3187 cascade/include/G4IntraNucleiCascader.hh 3188 cascade/include/G4InuclCollider.hh 3189 cascade/include/G4NonEquilibriumEvaporator.hh 3190 cascade/include/G4PreCompoundInuclCollider.hh 3191 cascade/src/G4BigBanger.cc 3192 cascade/src/G4ElementaryParticleCollider.cc 3193 cascade/src/G4EquilibriumEvaporator.cc 3194 cascade/src/G4EvaporationInuclCollider.cc 3195 cascade/src/G4Fissioner.cc 3196 cascade/src/G4IntraNucleiCascader.cc 3197 cascade/src/G4InuclCollider.cc 3198 cascade/src/G4NonEquilibriumEvaporator.cc 3199 cascade/src/G4PreCompoundInuclCollider.cc 3200 3201 - G4EquilibriumEvaporator: Use new functionality (above) to turn off 3202 conservation checks when evaporating fission products. 3203 3204 - G4CascadeInterface.cc: Report number of retries in verbose messages. 3205 3206 - G4IntraNucleiCascader.cc: Remove sanity check on afin/zfin vs. model. 3207 3208 13 July 2010 Michael Kelsey (hadr-casc-V09-03-56) 3209 ------------------------------------------------- 3210 - G4CascadeCheckBalance: Add zero protection (needed for momentum ratio) 3211 using a static tolerance parameter. 3212 3213 - G4EquilibriumEvaporator.cc: Add dumping of G4CollisionOutput before exit, 3214 some fixes for "PEX" adjustments as EEXS changes. 3215 3216 - G4NonEquilibriumEvaporator.cc: Add conservation checking, dump of output, 3217 some fixes for "PEX" adjustments as EEXS changes. 3218 3219 - G4Fissioner.cc: Add conservation checking, remove addition of excitation 3220 energy to input nucleus mass, since already included. 3221 3222 13 July 2010 Michael Kelsey 3223 --------------------------- 3224 - G4CascadeCheckBalance.cc: Hide violation reports behind verbose == 1. 3225 3226 - G4ElementaryParticleCollider.cc: Bump ::collide() message to verbose > 1. 3227 3228 - G4EquilibriumEvaporator.cc: Add conservation checking, collapse if-cascades 3229 by doing failure tests and exits up front, add sanity check on eex_real. 3230 3231 - G4IntraNucleiCascader.cc: Add diagnostic messages and some FIXME 3232 comments, validate afin/zfin against G4NucleiModel result. 3233 3234 - G4InuclCollider.cc: Move conservation check outside verbosity flag. This 3235 adds to CPU usage, so may need #ifdef protection later. Adjust a few 3236 verbosity levels. 3237 3238 - G4LorentzConvertor.cc: Bump all diagnostic messages to verbose > 2. 3239 3240 - G4NucleiModel.cc: Simplify main if-block to put failure up front; add 3241 debugging messages when decrementing proton or neutron counts. 3242 3243 11 July 2010 Michael Kelsey 3244 --------------------------- 3245 - G4CascadeCheckBalance: Add ctor argument with name of parent class; use 3246 this name when reporting results. Add interface for nuclear fragment 3247 list. Allow parent class name to be changed dynamically. 3248 3249 - G4BigBanger.cc, G4CascadeInterface.cc, G4ElementaryParticleCollider.cc, 3250 G4InuclCollider.cc, G4NucleiModel.cc: Pass name to G4CascadeCheckBalance. 3251 3252 - G4Fissioner.cc: Use G4CascadeCheckBalance to test energy conservation. 3253 3254 - G4InuclNuclei.hh: Add model ID as optional ctor argument. 3255 3256 - G4InuclCollider.cc: Move balance checks on evaporators outside verbosity. 3257 Adjust name of G4CascadeCheckBalance for clear reporting. 3258 3259 - G4VCascadeCollider.hh: Add protected function to change name dynamically. 3260 3261 6 July 2010 Dennis Wright (hadr-casc-V09-03-55) 3262 ----------------------------------------------- 3263 - G4IntraNucleiCascader.cc: add to final particle list those cascade 3264 particles which were formerly abandoned at cascade termination; 3265 - G4IntraNucleiCascader.cc: allow meson excitons to pass out of nucleus 3266 since they are not proper excitons, and would be lost otherwise 3267 3268 4 July 2010 Dennis Wright (hadr-casc-V09-03-54) 3269 ----------------------------------------------- 3270 - tag changes up to now 3271 3272 2 July 2010 Michael Kelsey 3273 -------------------------- 3274 - G4BigBanger.cc: Moving "generateMomentumModules()" inside loop. For 3275 three-body decays, the angles are not ajustable (so always fails). 3276 3277 - G4CascadeInterface.cc: Set verbosity on G4CollisionOutput. 3278 3279 - G4EquilibriumEvaporator.cc: Simplify if-cascades to reduce nesting (test 3280 for errors and exit up front, rather than in else-blocks). 3281 3282 - G4InuclCollider.cc: Set verbosity on G4CollisionOutput. 3283 3284 - G4IntraNucleiCascader.cc: Throw away casacde which leaves "negative energy 3285 recoil" (i.e. rest-frame energy of recoil less than mass of nucleus or 3286 nucleon). 3287 3288 1 July 2010 Michael Kelsey 3289 -------------------------- 3290 - G4InuclCollider.cc: Used wrong input target for conservation-law checking 3291 subsequent to G4EquilibriumEvaporator. 3292 3293 - G4EquilibriumEvaporator.cc, G4NonEquilibriumEvaporator.cc: Handle 3294 excitation energy differently with new G4InuclNuclei interface. Compute 3295 updated values correctly, by taking nuclear mass difference then 3296 subtracting energy of evaporated particle. 3297 3298 - G4InuclNuclei: Reorganization to properly incorporate excited states. 3299 Excitation energy included in mass in all cases. setExcitationEnergy() now 3300 replaces G4PartDefn pointer with new excited state. getNucleiMass() takes 3301 (optional) excitation, calls G4NucleiProperties to get mass value. For 3302 weird fragments, multiple isomers allowed, assigned unique non-standard 3303 PDG codes. Include particle name in printout (now in .cc file). 3304 3305 - G4CollisionOutput.cc: Do not include nuclear excitation energy in output 3306 sum; now included with nuclear mass automatically (and properly). 3307 3308 - G4CascadeCheckBalance.cc: Do not include nucler excitation energy in input 3309 sum; now inluded with nuclear mass automatically (and properly). 3310 3311 - G4IntraNucleiCascader.cc: For recoil nuclear fragments, treat excitation 3312 energy properly: compute as difference between recoil "mass" (recoil-frame 3313 energy) and ground-state A/Z mass, and pass into G4InuclNuclei ctor. 3314 After the cascade, add some recoil energy checks to deal with both 3315 floating-point round-off, and quasi-elastic scatters (which change the 3316 bullet direction, and leave the nucleus with "missing" energy). 3317 3318 - G4BigBanger.cc: Simplify boost to "target" nucleus, using "boostVector" 3319 instead of G4LorentzConvertor machinery. 3320 3321 30 June 2010 Michael Kelsey 3322 --------------------------- 3323 - G4BigBanger.cc: Improve handling of excitation energy as part of nuclear 3324 mass, deal with two-body explosion properly (x=0.5, not random). Some 3325 tweaks to diagnostic messages. 3326 3327 - G4CascadeCheckBalance: Add excitation energy to total energy for bullet 3328 and target nuclei. This is done in G4CollisionOutput for secondaries. It 3329 is NOT relativistically correct (should add to mass, not energy), but is 3330 consistent. 3331 3332 - G4CollisionOutput.cc: Use "getExitationEnergyInGeV()" instead of "0.001*". 3333 3334 - G4IntraNucleiCascader.cc: More diagnostic messages, improve the afin/zfin 3335 sanity check by requiring A>=Z. 3336 3337 28 June 2010 Michael Kelsey 3338 --------------------------- 3339 - G4CascadeCheckBalance: Report violations on G4cerr always, regardless 3340 of verbosity level. Add collide(...,<vector>) interface to allow use 3341 from within G4ElementaryParticleCollider. 3342 3343 - G4ElementaryParticleCollider.cc: Add conservation checks within ::collide(). 3344 3345 - G4IntraNucleiCascader.cc: Add more diagnostic messages. Test for 3346 negative values of afin, zfin, and try again. Set round-off limit (1e-6), 3347 and test nuclear recoil energy for bound (setting to zero) before doing 3348 energy-violation test. 3349 3350 - G4InuclNuclei.cc: Abort job if passed negative Z or A argument. 3351 3352 28 June 2010 Michael Kelsey 3353 --------------------------- 3354 - G4BigBanger.cc: Missed one instance of GetBindingEnergy(). 3355 3356 26 June 2010 Dennis Wright 3357 -------------------------- 3358 - G4InuclNuclei: Fix bug in calculation of PDG code. 3359 3360 25 June 2010 Michael Kelsey (hadr-casc-V09-03-53) 3361 ------------------------------------------------- 3362 - G4ElementaryParticleCollider.cc: MAJOR BUG FIX: Three different places 3363 in generating N-body momenta had incorrect "recoil" calculations. The 3364 Nth four-vector was computed as simply -total, which produced negative 3365 energy states (obviously). The correct calculation should have been 3366 N = G4LV(0,0,0,etot) - (total) in each instance. 3367 3368 24 June 2010 Michael Kelsey (hadr-casc-V09-03-52) 3369 ------------------------------------------------- 3370 - G4CascadeCheckBalance.cc: Bug fixes to limit checks; should be using 3371 std::abs(), or negative violations don't get caught! Also did some 3372 cleanup for compiler warnings see on Linux. 3373 3374 23 June 2010 Michael Kelsey 3375 --------------------------- 3376 - G4CascadeInterface.cc: Fix infinite-loop bug with energy-violation; must 3377 check for (nTries>maxTries) outside parenthetical, with balance.okay() 3378 inside. Do conservation checks all the time, not just with flag set. If 3379 e-violation is "infinite loop", dump last generated event and abort job. 3380 3381 - G4CascadeCheckBalance: Add checks on baryon number, charge, and kinetic 3382 energy. "Global" sanity check (::okay() function) does not include K.E. 3383 3384 23 June 2010 Michael Kelsey (hadr-casc-V09-03-51) 3385 ------------------------------------------------- 3386 - bindingEnergy.cc: Replace entire function with call-through to 3387 G4NucleiProperties. Copy test for valid A/Z from there, and return 3388 0. directly on failure; suppresses warning message in 9.4-beta. 3389 3390 - G4EquilibriumEvaporator.cc, G4Fissioner.cc, G4IntraNucleiCascader.cc 3391 G4InuclNuclei.cc, G4NonEquilibriumEvaporator.cc, G4NucleiModel.cc 3392 G4VCascadeCollider.cc: Restore calls to local "bindingEnergy()" to 3393 get wrapper function above; suppresses warning messages in 9.4-beta. 3394 3395 - G4NucleiModel.cc: Make class re-usable (had been assumed in -47 tag, but 3396 was not true!), by clearing all parameter vectors in generateModel(). 3397 Values of A,Z are tested first, and previous data kept if same nucleus is 3398 being modelled. 3399 3400 23 June 2010 Michael Kelsey 3401 --------------------------- 3402 - G4CascadeInterface.cc: Minor fix to rationalize version jumpings. 3403 - G4NucleiModel.cc: Fix bug in partners list termination mods below, and 3404 remove reflection-recoil from boundaryTransition(). 3405 3406 3407 21 June 2010 Michael Kelsey (MHK-20100621) 3408 ------------------------------------------ 3409 - G4CascadeInterface.cc: Bring MHK-20100620 version back to HEAD, make same 3410 parenthesis fix for GCC 4.5 compilation. 3411 3412 - G4IntraNucleiCascader.cc: Bug fix nuclear recoil kinematics introduced in 3413 MHK-20100620. 3414 3415 - G4NucleiModel.cc: Bring MHK-20100620 version back to HEAD, apply ctor 3416 argument fix. Eliminate creating temporaries for terminal "partners" on 3417 list; default ctor will take care of it. Hide negative path-length report 3418 behind verbose flag, and don't return an empty list. 3419 3420 Add block of code in ::boundaryTransition() which recoils the nucleus when 3421 the secondary is reflected off the potential, to balance the momentum 3422 transfer. This is implemented by computing the boost for the full nucleus 3423 using the computed three-momentum transfer, and applying that boost to the 3424 secondary. 3425 3426 23 June 2010 Michael Kelsey (hadr-casc-V09-03-50) 3427 ------------------------------------------------- 3428 - G4IntraNucleiCascader.cc: Restore G4NucleiModel as local data member. 3429 Not well designed for reuse. 3430 3431 21 June 2010 Michael Kelsey (hadr-casc-V09-03-49) 3432 ------------------------------------------------- 3433 NOTE: Changes below were version jumped into V09-03-48. Tag above ONLY 3434 includes these two changes! 3435 3436 - G4CascadeInterface.cc: Add parentheses in main iteration loop to support 3437 mixed && and || (reported by gcc-4.5). 3438 3439 - G4NucleiModel.cc: Fix mistake in passing ctor args to generateModel(). 3440 3441 20 June 2010 Michael Kelsey (MHK-20100620) 3442 ------------------------------------------ 3443 - G4CascadeCheckBalance: New utility class to do energy and momentum 3444 conservation testing. Implemented as a "collider" to resue interface. 3445 3446 - G4CascadeInterface.cc: Use new G4CascadeCheckBalance for energy 3447 conservation. 3448 3449 - G4CollisionOutput: Add setVerboseLevel() function, diagnostic reports in 3450 ::setOnShell(), and collapse if-cascades to use "if (!xxx) return" instead 3451 of multiple nestings. 3452 3453 - G4ElementaryParticleCollider.cc: Collapse if-cascade to use "if (!xxx) 3454 return" instead of multiple nestings. 3455 3456 - G4IntraNucleiCascader.cc: Improve diagnostic messages, change some G4cout 3457 to G4cerr. 3458 3459 - G4InuclCollider: Make output buffers data members to reduce churn; 3460 simplify if-cascades to use "if (!xxx) return" instead of nesting; add 3461 energy-conservation checks at each stage of cascade. 3462 3463 - G4NucleiModel.cc: Improve diagnostics, collapse if-cascades to use "if 3464 (!xxx) return" instead of multiple nestings. 3465 3466 18 June 2010 Michael Kelsey (hadr-casc-V09-03-48) 3467 ------------------------------------------------- 3468 - G4CascadeInterface.cc: Add check on energy conservation between initial 3469 and final states; more than 5% imbalance triggers repeat generation of 3470 cascade. This check may be disabled with flag G4CASCADE_SKIP_ECONS. Also 3471 did some minor cleanup of the code. 3472 3473 - cascade/GNUmakefile: Add support for new flag above. 3474 3475 17 June 2010 Michael Kelsey (hadr-casc-V09-03-47) 3476 ------------------------------------------------- 3477 - G4CascadeInterface, G4PreCompoundCascadeInterface: Make G4InuclCollider a 3478 local data member, pass verbosity to it in ::ApplyYourself(). 3479 3480 - G4InuclCollider, G4ElementaryParticleCollider, G4IntraNucleiCascader, 3481 G4EquilibriumEvaporator, G4BigBanger: Make all sub-colliders local data 3482 members, pass verbosity to each of them. 3483 3484 - G4NucleiModel: Add ctors and generateModel() signatures so both can do 3485 particle or A/Z initialization. Add setVerboseLevel() function. 3486 3487 17 June 2010 Michael Kelsey (hadr-casc-V09-03-46) 3488 ------------------------------------------------- 3489 - cascade/GNUmakefile: Add series of "ifneq (,...)" blocks to map 3490 environment variables for debugging onto "-D..." compiler flags: 3491 3492 G4CASCADE_COULOMB_DEV 3493 G4CASCADE_DEBUG_CHARGE 3494 G4CASCADE_DEBUG_INTERFACE 3495 G4CASCADE_DEBUG_SORT 3496 G4CASCADE_WATCHER_HIGHZ 3497 3498 - G4CascadeInterface.cc: Replace preprocessor flags "debug_G4...Interface" 3499 with G4CASCADE_DEBUG_INTERFACE, and "BERTDEV" with G4CASCADE_COULOMB_DEV. 3500 Fix bug with information access in debugging block. 3501 3502 - G4EquilibriumEvaporator.cc, G4IntraNucleiCascader.cc, 3503 G4NonEquilibriumEvaporator.cc: Eliminate preprocessor flag RUN and all 3504 code contained in "#else" blocks. 3505 3506 - G4LorentzConverter.cc: Add diagnostic output with different levels: All 3507 " >>>" entry messages done for verboseLevel >= 1; all numeric reports for 3508 verboseLevel > 2. 3509 3510 - G4NucleiModel: Replace preprocessor flag "CHC_CHECK" with 3511 G4CASCADE_DEBUG_CHARGE. 3512 3513 - G4PreCompoundCascadeInterface.cc: Replace preprocessor flag 3514 "debug_G4...Interface" with G4CASCADE_DEBUG_INTERFACE. Fix bug with 3515 information access in debugging block. 3516 3517 - G4WatcherGun.cc: Replace preprocessor flag "PB" with G4CASCADE_WATCHER_HIGHZ. 3518 3519 16 June 2010 Michael Kelsey 3520 --------------------------- 3521 - G4CascadeInterface.hh: Add setVerboseLevel() function. 3522 3523 - G4IntraNucleiCascader.cc: Add reporting of momentum content for residual 3524 nuclear fragment, list of final-state particles, some cleanup of momentum 3525 balancing code. 3526 3527 - G4LorentzConvertor: Add reporting of bullet and target four-vectors. 3528 3529 - G4NucleiModel.cc: Add diagnostic output for partner-list generation, 3530 replace one random-angle code block with generateWithRandomAngles(). 3531 3532 15 June 2010 Michael Kelsey (hadr-casc-V09-03-45) 3533 ------------------------------------------------- 3534 - G4CascadeInterface.cc, G4PreCompoundCascadeInterface.cc: When converting 3535 output particles from K0/K0bar to K0S/K0L, convert kinetic energy from 3536 Bertini internal units (GeV) to GEANT4 units (MeV). 3537 3538 - G4VCascadeCollider: Make two separate ctors, name and name+verbose, with 3539 no default values. All subclasses *must* provide a literal name string. 3540 3541 12 June 2010 Michael Kelsey (hadr-casc-V09-03-44) 3542 ------------------------------------------------- 3543 - G4CascadeT33piNChannel.cc: Swapped 8-body final state tables for pipP 3544 vs. pimN. 3545 3546 11 June 2010 Michael Kelsey (hadr-casc-V09-03-43) 3547 ------------------------------------------------- 3548 - G4CascadeData.hh: Equally trivial fix for compiler warking on Intel ICC 3549 for index[] array bounds in ::initialize(). Dimension array as [9], and 3550 set all values. 3551 3552 08 June 2010 Gunter Folger (hadr-casc-V09-03-42) 3553 ------------------------------------------------ 3554 - trivial fix for compiler warning on gcc43 on empty body in for(...) in 3555 cascade/include/G4CascadeInterpolator.icc:67 3556 3557 01 June 2010 Michael Kelsey (hadr-casc-V09-03-41) 3558 ------------------------------------------------- 3559 - paraMaker.cc: Fix vector initialization for Windows crash. 3560 3561 26 May 2010 Dennis Wright (hadr-casc-V09-03-40) 3562 ----------------------------------------------- 3563 - G4NucleiModel: remove conversion to fm, and conversion of cross 3564 sections to fm**2 3565 3566 21 May 2010 Michael Kelsey (hadr-casc-V09-03-39) 3567 ------------------------------------------------ 3568 Final tag for inclusion in GEANT 4.9.4-beta. Will be validated internal and 3569 included in global Hadronics tag. 3570 3571 - G4CascadeSampler.icc: Activate time-saving checks on single bins. 3572 - G4ElementaryParticleCollider.cc: Remove special case for nucleon elastic 3573 scattering. 3574 3575 21 May 2010 Michael Kelsey (kelsey-20100521c) 3576 --------------------------------------------- 3577 - G4CascadeInterface, G4PreCompoundCascadeInterface, G4InuclEvaporation: 3578 Simplify code: fetch G4DynamicParticle out of outgoing G4InuclParticles, 3579 rather than creating new ones. Remove all of the *Collider data members 3580 (instantiated within G4InuclCollider). Move final state rotations to 3581 G4CollisionOutput. 3582 3583 - G4InuclParticle: Provide accessor to return G4DynamicParticle. 3584 3585 - G4CollisionOutput: Add function to apply LorentzRotation to both lists; 3586 used by G4CascadeInterface. 3587 3588 - G4ElementaryParticleCollider: Avoid memory churn with G4LorentzVector 3589 temporaries. 3590 3591 21 May 2010 Michael Kelsey (kelsey-20100521b) 3592 --------------------------------------------- 3593 - G4VCascadeCollider: New base class for all Colliders. Carries 3594 verboseLevel data member and set-function. ::collide() is pure virtual. 3595 Additional protected member functions will be defined to include all code 3596 shared across multiple Colliders. 3597 3598 - Migrate all of the "Collider" factories to use new base class, removing 3599 common member functions, and replace passed-in sibling colliders with 3600 local data members (pointers for now). Since none of these classes have 3601 persistent (state preserving) data members, the cost of more than one 3602 instantiation is minimal. 3603 3604 G4BigBanger 3605 G4ElementaryParticleCollider 3606 G4EquilibriumEvaporator 3607 G4EvaporationInuclCollider 3608 G4Fissioner 3609 G4IntraNucleiCascader 3610 G4InuclCollider 3611 G4NonEquilibriumEvaporator 3612 G4PreCompoundInuclCollider 3613 3614 - G4CascadeInterface.cc, G4InuclEvaporation.cc, 3615 G4PreCompoundCascadeInterface.cc: Remove siblings from constructors for 3616 the Colliders. 3617 3618 - G4InteractionCase.hh: Eliminate unnecessary copying of std::pair<>'s, use 3619 initializers in ctors, add clear() function to reset to 0-0-0. Move 3620 evaluation of bullet vs. target to new set() function, replacing separate 3621 bulletTargetSetter() in the colliders. Add boolean accessors to avoid 3622 hard-coding inter_case values. Change code numbers so nucleus collisions 3623 are negative, and positive codes refer to the "is" or "rtype" numbers. 3624 3625 - G4ElementaryParticleCollider.cc: Use G4InteractionCase to compute "is", 3626 instead of hardwiring the meaning. 3627 3628 - G4Collider.hh: Remove empty and never-used file. 3629 3630 - G4EvaporationInuclCollider.cc: Eliminate unnecessary creation of 3631 duplicate G4InuclNuclei: pass input through to G4EquilibriumEvaporator. 3632 3633 - G4LorentzConvertor: Add interfaces to pass G4InuclParticles directly. 3634 3635 21 May 2010 Michael Kelsey (kelsey-20100521a) 3636 --------------------------------------------- 3637 Replace hand-coded interpolation of arrays with use of G4CascadeInterpolator. 3638 In all cases, local arrays are replaced with static const, and the 3639 interpolator object itself is declared static, to reduce memory churn. 3640 3641 G4NucleiModel::totalCrossSection() 3642 G4EquilibriumEvaporator::getQF() 3643 G4InuclSpecialFunctions::paraMaker[Truncated]() (in paraMaker.cc) 3644 3645 - G4CascadSpecialFunctions: Remove. totalCrossSection() redundant with 3646 G4NucleiModel. Move absorptionCrossSection() to G4NucleiModel. 3647 3648 - G4CascadeInterpolator.icc: Bug fix to catch special case of exact upper 3649 bin edge (occurs when !doExtrapolation). If index == last + 0., just 3650 return upper edge value, without calculation. 3651 3652 - G4NucleiModel.cc: Use G4Cascade{Pi*}Channel and G4Cascade{NN,NP,PP}Channel 3653 classes to get total cross-sections for pi-N and N-N scattering. Arrays 3654 for kaon and hyperon scattering should be migrated as well, once binning 3655 is resolved. Move absorptionCrossSection() here from SpecialFunctions. 3656 3657 20 May 2010 Michael Kelsey (kelsey-20100521) 3658 -------------------------------------------- 3659 - G4CascadeInterpolator.icc: Two bug fixes involving values at array edges. 3660 3661 19 May 2010 Michael Kelsey, Dennis Wright 3662 ----------------------------------------- 3663 - G4BertiniData.hh,.cc: Remove unused and unnecessary class. 3664 - G4NucleiModel.cc: convert nuclear radii to fm and cross sections to 3665 fm**2. Use six-zone model for A > 99, and make alpha a 1-zone 3666 nucleus. 3667 - G4CascadSpecialFunctions: convert pion absorption cross sections from 3668 mb to fm**2, correct spelling of method absorptionCrossSection 3669 3670 17 May 2010 Michael Kelsey (hadr-casc-V09-03-38) 3671 ------------------------------------------------ 3672 - paraMaker.cc (G4InuclSpecialFunctions::paraMaker[Truncated]): Upper edge 3673 of interpolation array not properly handled. Should be "if (Z >= 70.0)". 3674 This affects G4NonEquilibriumEvaporator output. 3675 3676 17 May 2010 Michael Kelsey (hadr-casc-V09-03-37) 3677 ------------------------------------------------ 3678 Bug fixes for compiler warnings (not seen on MacOSX, even with g++ -Wall) 3679 3680 - G4CascadeData.hh: Dummy arrays needed double-braces for initialization. 3681 3682 - G4CascadeInterpolator.icc: Extraneous decimal point in "for (i=0.;". 3683 3684 - G4CascadeKzeroBarNChannel.cc: Left three "old" arrays in place during 3685 conversion. 3686 3687 14 May 2010 Michael Kelsey (hadr-casc-V09-03-36) 3688 ------------------------------------------------ 3689 Remove obsolete files following reorganization of two-body scattering 3690 lookup tables. 3691 3692 G4CascadeElasticInterface.hh,.cc 3693 G4ElasticCascadeInterface.hh,.cc 3694 G4FinalStateSampler.hh,.cc 3695 G4NucleonSampler.hh,.cc 3696 G4PionSampler.hh,.cc 3697 3698 - G4CascadeChannel.hh,.cc: All functionality removed, replaced with 3699 namespace containing only getQnums and CheckQnums validation functions. 3700 3701 14 May 2010 Michael Kelsey (hadr-casc-V09-03-35) 3702 ------------------------------------------------ 3703 Replace independent parallel samplers with templated base class and single 3704 implementation. This completes the reorganization of the channel tables. 3705 3706 - G4CascadeSampler: Redefine as templated base, taking binning array as 3707 constructor argument. Move implementation file from .cc to .icc. 3708 NOTE: G4CascadeSampler.cc is removed, since not consistent with new .hh. 3709 3710 - G4PionNucSampler: Subclass of G4CascadeSampler<30>, replaces 3711 G4FinalStateSampler, using bins array from there. 3712 3713 - G4KaonNucSampler: Sublcass of G4CascadeSampler<31>, replaces previous 3714 G4CascadeSampler, using bins array from there. 3715 3716 - G4Cascade*Channel.hh: Change all typedefs to pass appropriate of two new 3717 samplers in template. 3718 3719 - G4ElementaryParticleCollider.cc: Replace long "if (is==)"-cascades with 3720 switch blocks. Move all getOutgoing calls (for pions and nucleons) into 3721 one function, and call it from outside multiplicity checks. Use 3722 G4CascadeInterpolator for angular distributions. Set modelID=3 in all 3723 G4InuclParticle constructions. 3724 3725 14 May 2010 Michael Kelsey (hadr-casc-V09-03-34) 3726 ------------------------------------------------ 3727 Extract lookup tables from G4PionSampler and G4NucleonSampler into 3728 individual "classes" defined and initialized with G4CascadeData. 3729 3730 - G4CascadePi{Plus,Minus,Zero}{P,N}Channel.hh: Six new typedefs defined as 3731 with the existing G4CascadeXXXChannel, to replace G4PionSampler. 3732 3733 - G4CascadeT33piNChannel.cc: Lookup tables for both PiPlusP and PiMinusN, 3734 implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc. 3735 3736 - G4CascadeT31piNChannel.cc: Lookup tables for both PiMinusP and PiPlusN, 3737 implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc 3738 3739 - G4CascadeT11pizNChannel.cc: Lookup tables for both PiZeroP and PiZeroN, 3740 implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc 3741 3742 - G4Cascade{PP,NP,NN}Channel.hh: Three new typedefs defined as with the 3743 existing G4CascadeXXXChannel, to replace G4NucleonSampler. 3744 3745 - G4CascadeT1NNChannel.cc: Lookup tables for both p-p and n-n scattering, 3746 implemented as with existing G4CascadeXXXChannel, from G4NucleonSampler.cc 3747 3748 - G4CascadeT0npChannel.cc: Lookup tables for p-n scattering, implemented as 3749 with existing G4CascadeXXXChannel, from G4NucleonSampler.cc 3750 3751 - G4CascadeFunctions.hh, .icc: Pass std::vector as non-const argument to 3752 getOutgoingParticleTypes() instead of returning internal buffer. 3753 3754 - G4CascadeSampler.cc, G4FinalStateSampler.cc: Add some checks in 3755 findFinalStateIndex, fillSigmaBuffer, and sampleFlat(), such that 3756 single-entry ranges don't go through the analysis, just return index 0. 3757 3758 - G4ElementaryParticleCollider.cc: Follow change to getOutgoingParticleTypes() 3759 in generateStrangeChannelPartTypes(). Replace all uses of G4PionSampler 3760 and G4NucleonSampler with new channel "classes". 3761 3762 14 May 2010 Michael Kelsey (hadr-casc-V09-03-33) 3763 ------------------------------------------------ 3764 Continue consolidation of two-body collision lookup tables. Unify 3765 interfaces between pion/nucleon and kaon/hyperon samplers. 3766 3767 - G4CascadeData: Many changes to support use as data class for both 3768 kaon/hyperon and pion/nucleon tables (migration will be next tag): 3769 3770 1) Add new first argument to template with number of bins in energy 3771 interpolation. This replaces the (temporary) use of 3772 G4CascadeSampler::energyBins within the class definition. 3773 3774 2) Add two additional template arguments, N8 and N9, with default values 3775 of zero. These will be used by the pion/nucleon tables, but not by the 3776 existing kaon/hyperon tables. 3777 3778 3) Define additional arrays for 8- and 9-body final states, using 3779 conditional dimensioning (e.g., if N8==0, use [1]). Define second 3780 9-body constructor to accept and initialize the new arrays. 3781 3782 4) Eliminate static initialization of index[], moving it into 3783 initialize(). Template specialization can't be used with data! 3784 3785 5) Add separate "sum" (summed N-body cross-sections) and "tot" arrays 3786 (measured inclusive xsec). Latter is a const-ref, initialized to "sum" 3787 if not provided as ctor argument, with two new ctors as needed. 3788 3789 6) Add accessor to return maximum multiplicity (NM+1). 3790 3791 - G4CascadeFunctions.hh: Add second template argument to specify which 3792 "final state sampler" is the base class. Use both T::data.tot and 3793 T::data.sum in GetMultiplicity(), to support sum/tot comparisons in 3794 pion/nucleon channels. Extend GetOutputParticleTypes() to support up to 3795 multiplicity 9. 3796 3797 - G4CascadeFunctions.icc: Implementations of template class functions. 3798 3799 - G4CascadeXXXChannel.hh: Add "31," as initial template argument for Data. 3800 Add G4CascadeSampler as second template argument in G4CascadeXXXChannel 3801 typedef. 3802 3803 3804 14 May 2010 Michael Kelsey (hadr-casc-V09-03-32) 3805 ------------------------------------------------ 3806 Continue revisions to two-body collision lookup tables. Make the kaon and 3807 hyperon channels compatible with the pion/nucleon samplers, before the next 3808 stage of unifying the structure. 3809 3810 - G4CascadeSampler: NEW class, parallel to G4FinalStateSampler but with a 3811 different energy binning. Used as base class to G4CascadeFunctions<T>, 3812 from which the cross-section and other arrays are passed. Implement 3813 findMultiplicity (cf. G4CascadeFunctions::getMultiplicity) to return the 3814 true value, not the array index. 3815 3816 This class replaces functionality of G4CascadeChannel, which is redundant. 3817 3818 - G4CascadeChannel: Remove all interpolation code, leaving only getQnums(). 3819 3820 - G4CascadeFunctions: Inherit from G4CascadeSampler for interpolations, 3821 except for final-state extraction (where FS type arrays are dealt with 3822 locally, not passed). Public static functions rely on private instantiated 3823 version of class to do work, so that G4CascadeSampler gets instantiated. 3824 3825 - G4CascadeData: Remove final template argument (total number of indices), 3826 as redundant with simple sum of multplicity indices. Use template args to 3827 dimension data member arrays (const references), and to statically 3828 initialize the start-stop index table. Make large cross-sections table 3829 G4double, not G4float. Define ctor to pass in array refs for initialization. 3830 Reduce index array to single dimension (start=index[i], stop=index[i+1]). 3831 3832 - G4CascadeXXXChannel: All of the initial-state channel "classes" 3833 (typedef names) modified to follow G4CascadeData rewrite. In .cc file, 3834 the explicit lookup tables are static, and passed by const-ref to 3835 G4CascadeData. The "initializer" struct is dropped; with the static 3836 "data" object initialized by ctor here. 3837 3838 - G4ElementaryParticleCollider.cc: In ::generateMultiplicity(), eliminate 3839 extra "+2" and "-2" applied to local "mul" variables. With change above, 3840 all functions return return true multiplicity, not array index. 3841 3842 - G4FinalStateSampler: Add findFinalStateIndex() function, to make 3843 interface match G4CascadeSampler exactly. Reduce index array to single 3844 dimension. 3845 3846 - G4PionSampler.cc, G4NucleonSampler.cc: Use new findFinalStateIndex() 3847 function in GetFSPartTypesXXX() functions. Reduce index array to single 3848 dimension (start=index[i], stop=index[i+1]). 3849 3850 14 May 2010 Michael Kelsey (hadr-casc-V09-03-31) 3851 ------------------------------------------------ 3852 Begin revisions to two-body collision lookup tables. This will be a major 3853 reorganization, splitting the G4PionSampler and G4NucleonSampler into 3854 separate little "classes" (typedefs) for each initial state, in the same way 3855 that the kaon and hyperon states are done now. The underlying templated and 3856 base classes will be unified across all of the channels. 3857 3858 - G4CascadeInterpolator: NEW class to encapsulate interpolation procedure. 3859 Uses C-style arrays passed by dimensioned reference, to allow compile-time 3860 array bounds checking. Template argument is array dimension, and array of 3861 energy bins is saved by ctor. User array to be interpolated is passed as 3862 function argument. Last value interpolated, along with result, is saved, 3863 to allow fast multiple interpolations. 3864 3865 This class is substantially more lightweight than G4PhysicsVector. 3866 3867 - G4FinalStateSampler: Replace manual interpolation with G4CascadeInterpolator. 3868 Remove redundant sampleFlat(...) function with argument. Rename member 3869 functions in anticipation of merging with G4CascadeFunctions. 3870 3871 - G4PionSampler.cc, G4NucleonSampler.cc: Follow use of G4CascadeInterpolator 3872 above, and drop local caching of interpolation results. Reduce offset 3873 list for cross-sections to one dimension (start=index[i], stop=index[i+1]). 3874 3875 11 May 2010 Michael Kelsey (hadr-casc-V09-03-30) 3876 ------------------------------------------------ 3877 Bug fixes in the two-body scattering code. 3878 3879 - G4PionSampler.cc, G4NucleonSampler.cc: Fix long-standing bug with offset 3880 indices computed for cross-section tables. XXXindex[m][0] (start) and 3881 XXXindex[m][1] (stop) are computed in initChannels() as [start,stop] 3882 inclusive range (i.e., "for (i=start; i<=stop; i++)"), but used with 3883 G4FinalStateSampler::fillSigmaBuffer (and its predecessor code) as 3884 [start,stop) exclusive range (i.e., normal C style "for (i=start; i<stop; 3885 i++)"). This is fixed by properly setting XXXindex[m-1][1] = 3886 XXXindex[m][0], and using the ranges consistently in initChannels(). 3887 3888 - G4ElementaryParticleCollider.cc: In the six pion-nucleon scatters, the 3889 two-body final state is incorrectly tested for charge-exchange. All the 3890 if statements check whether "particle_kinds[0]" is the initial nucleon, 3891 but the outgoing baryon actually appears in particle_kinds[1]. Replace 3892 the individual tests with the use of "finaltype", moved out of the 3893 strangeness if-block. 3894 3895 06 May 2010 Michael Kelsey (hadr-casc-V09-03-29, hadr-casc-V09-03-23-01) 3896 ------------------------------------------------------------------------ 3897 - G4Diproton.cc, G4Dineutron.cc, G4UnboundPN.cc: After creating instance 3898 of these "internal" particles, remove the pointer from G4ParticleTable. 3899 This avoids an issue with the FTFP de-excitation code, which occasionally 3900 picks up the diproton and puts it onto a final-state particle list. 3901 3902 These three changes, and nothing else, are "backported" on top of -23 for 3903 continued validation tests. 3904 3905 30 Apr 2010 Dennis Wright (hadr-casc-V09-03-28) 3906 ----------------------------------------------- 3907 - G4ElementaryParticleCollider: 3908 improved pi-nucleon two-body angular distributions, and made 3909 sampling of CM angle faster. As a result, the methods 3910 getElasticCase and adjustIntervalForElastic were made redundant 3911 and removed. Also removed array containing old angular distribution 3912 parameters. 3913 3914 Now use nucleon-nucleon angular distributions for hyperon-nucleon 3915 scattering, and pi-nucleon dsitributions for kaon-nucleon scattering 3916 (until specific kaon distributions are added). 3917 3918 29 Apr 2010 Michael Kelsey (hadr-casc-V09-03-27) 3919 ------------------------------------------------ 3920 - G4InuclPartcleNames.hh: Long name "gamma" conflicts with math function. 3921 Change back to "photon". 3922 3923 - G4InuclElementaryParticle.cc, G4InuclEvaporation.cc, 3924 G4NonEquilibriumEvaporator.cc, G4NucleiModel.cc, G4NucleonSampler.cc, 3925 G4PionSampler.cc, G4PreCompoundCascadeInterface.cc, 3926 G4PreCompoundInuclCollider.cc: Replace "gamma" with "photon". 3927 3928 - G4InuclElementaryParticle.hh: Change "photon()" to "isPhoton()" to avoid 3929 conflicts with names enum. Use names enum internally as well. 3930 3931 - G4ElementaryParticleCollider.cc, G4InuclCollider.cc, 3932 G4PreCompoundInuclCollider.cc: Change "photon()" to "isPhoton()". 3933 3934 28 Apr 2010 Michael Kelsey (hadr-casc-V09-03-26) 3935 ------------------------------------------------ 3936 All changes below within "cascade/" subdirectory: 3937 3938 - G4InuclParticleNames.hh: Define enums for particle type codes, using both 3939 "long" and "short" names copied from existing duplicated enums. One 3940 change is that "kp" and "km" are replaced by "kpl" and "kmi" respectively, 3941 since "km" conflicts with GEANT4 "kilometers" unit. Deploy in classes: 3942 3943 include/G4FinalStateSampler.hh 3944 src/G4CascadeElasticInterface.cc 3945 src/G4CascadeInterface.cc 3946 src/G4ElasticCascadeInterface.cc 3947 src/G4ElementaryParticleCollider.cc 3948 src/G4InuclElementaryParticle.cc 3949 src/G4InuclEvaporation.cc 3950 src/G4NucleonSampler.cc 3951 src/G4PionSampler.cc 3952 src/G4PreCompoundCascadeInterface.cc 3953 3954 - G4InuclElementaryParticle.cc: Add Omega- and antinucleon partcles to lists. 3955 No code uses these (yet). 3956 3957 24 April 2010 Michael Kelsey (hadr-casc-V09-03-25) 3958 -------------------------------------------------- 3959 Remove redundant classes, G4Ibertini and G4BertiniRegionModel. 3960 3961 21 April 2010 Michael Kelsey (hadr-casc-V09-03-24) 3962 -------------------------------------------------- 3963 - G4NucleiModel.hh,cc: Eliminate last remaining hardwired baryon masses. 3964 3965 18 April 2010 Michael Kelsey (hadr-casc-V09-03-23) 3966 -------------------------------------------------- 3967 Final revisions to access std::vector<particle> via const-references: 3968 3969 G4CascadeInterface.cc 3970 G4EquilibriumEvaporator.cc 3971 G4IBertini.cc 3972 G4InuclCollier.cc 3973 G4NucleiModel.cc 3974 G4PreCompoundCascadeInterface.cc 3975 3976 - G4CollisionOutput: Add new function to boost output lists to lab frame. 3977 3978 14 April 2010 Michael Kelsey (hadr-casc-V09-03-22) 3979 -------------------------------------------------- 3980 - G4CascadeInterface.cc, G4IBertini.cc, G4PreCompoundCascadeInterface.cc: 3981 In ::ApplyYourself(), do the check on K0L/K0S _before_ passing G4PartDefn 3982 to G4InuclElemPart::type(). This avoids unnecessary warning message. 3983 3984 14 April 2010 Michael Kelsey (temporary: kelsey-memClean3) 3985 ---------------------------------------------------------- 3986 All changes below within "cascade/" subdirectory: 3987 3988 - G4FinalStateSampler: Replace "sigma" argument for sampling with data 3989 member, add functions to fill sigma buffer by passing in array references. 3990 Provide typedef for interpolator, and function to apply interpolation. 3991 3992 - G4PionSampler, G4NucleonSampler: Follow changes to base class, 3993 eliminating much of the copy-and-paste code blocks via function calls. 3994 Replace G4float arrays with G4double, to support passing into functions. 3995 3996 13 April 2010 Michael Kelsey (hadr-casc-V09-03-21) 3997 -------------------------------------------------- 3998 All changes below within "cascade/" subdirectory: 3999 4000 - G4InuclSpecialFunctions.hh, paraMaker.cc, paraMakerTruncated.cc: Drop 4001 return-by-value from paraMaker() and paraMakerTruncated(). Add second 4002 argument with non-const reference to output buffer for return. 4003 4004 - G4EquilibriumEvaporator.cc: Follow changes above to paraMaker(), use 4005 references to address parms.first and parms.second, instead of copying. 4006 4007 - G4NonEquilibriumEvaporator.cc: Follow changes above to 4008 paraMakerTruncaed(), use references to address parms.first and 4009 parms.second, instead of copying. 4010 4011 - G4Dineutron, G4Diproton, G4UnboundPN: Inherit from G4VShortLivedParticle, 4012 per Kurashige. Thought it would eliminate G4ElectronOccupancy churn, but 4013 did not. 4014 4015 12 April 2010 Michael Kelsey (hadr-casc-V09-03-20) 4016 -------------------------------------------------- 4017 All changes below within "cascade/" subdirectory: 4018 4019 - G4NucleiModel: Move function implementations from .hh to .cc. Replace 4020 manual sorting (inefficient O(N^2)) with std::sort() and simple 4021 "less-than" function for std::pair<> "partners". 4022 4023 - G4CollisionOutput: Move function implementations from .hh to .cc. Use 4024 std::vevtor<>::insert() to add vectors together. 4025 4026 - Replace return-by-value G4CollisionOutput with non-const reference buffer 4027 passed into xxx::collide(), in the following classes: 4028 G4BigBanger 4029 G4CascadeElasticInterface 4030 G4CascadeInterface 4031 G4ElasticCascadeInterface 4032 G4ElementaryParticleCollider 4033 G4EquilibriumEvaporator 4034 G4EvaporationInuclCollider 4035 G4Fissioner 4036 G4IBertini 4037 G4IntraNucleiCascader 4038 G4InuclCollider 4039 G4InuclEvaporation 4040 G4NonEquilibriumEvaporator 4041 G4NucleiModel 4042 G4PreCompoundCascadeInterface 4043 G4PreCompoundInuclCollider 4044 4045 Note that some places where internal G4CollisionOutput buffers are being 4046 used (and their contents appended to the global output) have not been 4047 cleaned up yet. These will require some rearrangement of the algorithms, 4048 or/and elimination of debugging output. 4049 4050 09 April 2010 Michael Kelsey (hadr-casc-V09-03-16-01) 4051 ----------------------------------------------------- 4052 This modification is included in a pseudo-patch of hadr-casc-V09-03-16, 4053 without brining in any of the -17 through -19 modifications. 4054 4055 - G4LorentzVector.cc: Protect two instances of sqrt() against tiny negative 4056 arguments (due to tiny-tiny subtractions). 4057 4058 09 April 2010 Michael Kelsey (hadr-casc-V09-03-19) 4059 -------------------------------------------------- 4060 All changes below within "cascade/" subdirectory: 4061 4062 - G4InuclParticle, G4InuclElementaryParticle, G4InuclNuclei: Eliminate 4063 unused G4String ctor argument, introduced in hadr-casc-V09-03-01. Causes 4064 a lot of pointless memory churn. 4065 4066 - G4BigBanger.cc: Fix type conversion warning I introduced by mistake. 4067 4068 08 April 2010 Michael Kelsey (hadr-casc-V09-03-18) 4069 -------------------------------------------------- 4070 All changes below within "cascade/" subdirectory: 4071 4072 - G4PionSampler, G4NucleonSampler: For all ::GetFSPartTypes*() functions, 4073 eliminate return-by-value std::vector<>, and pass in non-const reference 4074 for filling in situ. Buffer is cleared. 4075 4076 - G4ElementaryParticleCollider.cc: Follow changes above for Sampler calls. 4077 4078 07 April 2010 Michael Kelsey (hadr-casc-V09-03-17) 4079 -------------------------------------------------- 4080 All changes below within "cascade/" subdirectory: 4081 4082 Replace return-by-value std::vector<> with either const-ref returns, or 4083 with use of an internal buffer which can be reused, to reduce memory 4084 churn due to copying, allocation, and resizing. 4085 4086 - G4BigBanger: Create data buffer for lists of secondaries and momenta. 4087 Fill buffers in ::generateBangInSCM() and ::generateMomentumModules(), 4088 which are now non-const. Reference buffers in ::collide(). 4089 4090 - G4CascadeFunctions::getOutgoingParticleTypes(): Make "kinds" a static 4091 variable (buffer), and return it by const-ref. 4092 4093 - G4ElementaryParticleCollider: Eliminate return-by-value std::vector<> 4094 on the functions listed below, by creating data buffers for particles, 4095 momenta, and particle types. The functions become non-const and void: 4096 ::generateSCMfinalState(), ::generateMomModules() 4097 ::generateStrangeChannelPartTypes(), ::generateSCMpionAbsorption() 4098 4099 Also, in ::generateStrangeChannelPartTypes(), use a switch statement 4100 instead of the long cascade of if-else-else. 4101 4102 - G4NucleiModel: Several member functions have different modifications: 4103 4104 ::initializeCascad(bullet,target) -- Replace return value with a passed-in 4105 (non-const reference) buffer to be filled. The calling code can 4106 pass in a data member, local variable, or whatever. 4107 4108 ::generateParticleFate() -- Replace local "thePartners" variable with data 4109 member, filled below. Move "outgouing_cparticles" to data member 4110 (fix the spelling!), and return by const-ref. 4111 4112 ::generateInteractionPartners() -- Eliminate return value; fill data 4113 member instead, to be used by ::generateParticleFate(). 4114 4115 - G4IntraNucleiCascader.cc: Follow changes to initializeCascad() above. 4116 4117 - G4NucleonSampler, G4PionSampler: ** DON'T KNOW WHAT TO DO HERE ** 4118 4119 - G4WatcherGun: Return const-ref to list of watchers, instead of copy. 4120 4121 Replace all uses of std::vector<>::resize(0) with ::clear(). The former 4122 causes deallocation/reallocation/resizing cycles, while clear() just removes 4123 content, preserving the allocated buffer. 4124 4125 include/G4CollisionOutput.hh 4126 src/G4ElementaryParticleCollider.cc 4127 src/G4NucleiModel.cc 4128 src/G4WatcherGun.cc 4129 4130 07 April 2010 Dennis Wright (hadr-casc-V09-03-16) 4131 ------------------------------------------------- 4132 - fix negative energy bug in G4BigBanger, and switch to using 4133 G4NucleiProperties::GetBindingEnergy 4134 4135 07 April 2010 Michael Kelsey (hadr-casc-V09-03-15) 4136 -------------------------------------------------- 4137 All changes below within "cascade/" subdirectory: 4138 4139 1) Systematically replace pass-by-value function arguments with const-refs. 4140 This is the first step in reducing unnecessary memory churn, to be followed 4141 by replacing return-by-value std::vector<> with non-const argument buffers. 4142 4143 include/G4CascadeChannel.hh 4144 include/G4FinalStateSampler.hh 4145 include/G4InuclEvaporation.hh 4146 include/G4NuclWatcher.hh 4147 src/G4CascadeChannel.cc 4148 src/G4FinalStateSampler.cc 4149 src/G4InuclEvaporation.cc 4150 src/G4NuclWatcher.cc 4151 4152 2) Fix constness on some operator== and operator!= definitions. 4153 4154 include/G4CascadeElasticInterface.hh 4155 include/G4CascadeInterface.hh 4156 include/G4ElasticCascadeInterface.hh 4157 include/G4IBertini.hh 4158 include/G4PreCompoundCascadeInterface.hh 4159 4160 07 Apr 2010 Michael Kelsey (hadr-casc-V09-03-14) 4161 ------------------------------------------------ 4162 - G4Dineutron.hh, G4Diproton.hh, G4UnboundPN.hh: 4163 Reset static "theInstance" pointer to zero in (now virtual) destructor. 4164 4165 - G4Dineutron.cc, G4Diproton.cc, G4UnboundPN.cc: 4166 Implement constructor to do the G4Ions initialization, rather than in 4167 ::Definition(). Drop use of G4ParticleTable; just monitor static pointer. 4168 Set "ShortLived" flag in G4Ions initialization, to avoid interactions with 4169 ProcessManager. 4170 4171 - G4InuclNuclei.cc: In ::makeNuclearFragment(), set "ShortLived" flag for 4172 G4Ions, to avoid interactions with ProcessManager. 4173 4174 26 Mar 2010 Dennis Wright (hadr-casc-V09-03-13) 4175 ----------------------------------------------- 4176 - G4EquilibriumEvaporator.cc: remove line #include "G4types.hh" 4177 (file doesn't exist) 4178 4179 20 Mar 2010 Michael Kelsey (hadr-casc-V09-03-12) 4180 ------------------------------------------------ 4181 All changes below within "cascade/" subdirectory: 4182 4183 - G4EquilibriumEvaporator.cc: Move subtraction of Q1[i] outside new 4184 GetBindingEnergy() call. 4185 4186 - G4InuclNuclei.cc::makeNuclearFragment(): Add message warning users about 4187 non-physical creation. Use new GetBindingEnergy() function here as well 4188 (V09-03-05 didn't have this function, so wasn't included in migration). 4189 4190 19 Mar 2010 Michael Kelsey (hadr-casc-V09-03-11) 4191 ------------------------------------------------ 4192 All changes below within "cascade/" subdirectory: 4193 4194 - G4InuclSpecialFunctions: Two new functions: 4195 4196 ::generateWithRandomAngles() to encapsulate random-direction generation. 4197 This function and existing generateWithFixedTheta() take optional mass 4198 argument to produce proper four-vector. 4199 4200 Replace duplicated random angle code with new function above, and use new 4201 optional mass argument where available: 4202 4203 G4BigBanger.cc 4204 G4ElementaryParticleCollider.cc 4205 G4EquilibriumEvaporator.cc 4206 G4Fissioner.cc 4207 G4NonEquilibriumEvaporator.cc 4208 G4NucleiModel.cc 4209 4210 ::G4cbrt(): Define cube-root in terms of log and exp, rather than pow(). 4211 Note that "cbrt()" can't be used, as it conflicts with <math.h> on Linux. 4212 4213 Eliminate unnecessary uses of std::pow() with fixed arguments. For 4214 example, "pow(x,3)" -> "x*x*x", "pow(x,1/3)" -> G4cbrt(x): 4215 4216 G4BertiniRegionModel.cc 4217 G4EquilibriumEvaporator.cc 4218 G4EvaporationInuclCollider.cc 4219 G4Fissioner.cc 4220 G4IntraNucleiCascader.cc 4221 G4InuclCollider.cc 4222 G4NonEquilibriumEvaporator.cc 4223 G4NucleiModel.cc 4224 G4PreCompoundInuclCollider.cc 4225 G4RegionModel.cc 4226 bindingEnergyAsymptotic.cc 4227 bindingEnergyKummel.cc 4228 4229 WARNING! In G4IntraNucleiCascader.cc, the Coulomb barrier was calculated 4230 using "std::pow(A, 0.333)", rather than the "exact" 1./3. This leads to 4231 per-mil differences in the value, and occasional differences in wheter an 4232 outgoing particle tunnels through. The new code is exact to double 4233 precision, and therefore fixes a bug. 4234 4235 - Move "using" directive from all .hh files to corresponding .cc, along with 4236 some unnecessary #includes: 4237 4238 G4BigBanger.hh, .cc 4239 G4ElementaryParticleCollider.hh, .cc 4240 G4EquilibriumEvaporator.hh, .cc 4241 G4EvaporationInuclCollider.hh, .cc 4242 G4Fissioner.hh, .cc 4243 G4IntraNucleiCascader.hh, .cc 4244 G4InuclCollider.hh 4245 G4InuclNuclei.hh 4246 G4NonEquilibriumEvaporator.hh, .cc 4247 G4NucleiModel.hh, .cc 4248 G4PreCompoundInuclCollider.hh, .cc 4249 4250 - G4NuclWatcher.hh and .cc (new): Move implementation code from .hh to .cc. 4251 4252 18 March 2010 Michael Kelsey (hadr-casc-V09-03-10) 4253 -------------------------------------------------- 4254 All changes below within "cascade/" subdirectory: 4255 4256 Missed one bug in repairs below, found when testing 4 GeV pi -> Pb. 4257 4258 - G4Fissioner.cc: Replace incorrect G4LorentzVector ctor arguments 4259 (G4ThreeVector,m) with call to G4LV::setVectM(). 4260 4261 17 March 2010 Dennis Wright (hadr-casc-V09-03-09) 4262 ------------------------------------------------- 4263 Fix warning in G4InuclNuclei.cc: G4Ions:G4Ions was being called with 4264 a double (a) in its 13th argument, when an integer is required. Use 4265 G4lrint to convert. 4266 4267 16 March 2010 Michael Kelsey (hadr-casc-V09-03-08) 4268 -------------------------------------------------- 4269 All changes below within "cascade/" subdirectory: 4270 4271 Fix bugs introduced during migration from G4CascadeMomentum to 4272 G4LorentzVector (see hadr-casc-V09-03-03). With these bug fixes, 2000 4273 events generated with "ppi4GeV" test executable are equivalent to production 4274 output (GEANT 4.9.3), allowing for differences in hardwired nucleon masses. 4275 When compared with hadr-casc-V09-03-02 (which uses G4ParticleDefinition for 4276 all the particle masses) the 2000-event results are identical within 4277 floating point precision. 4278 4279 - G4BigBanger.cc: Line 72, fix unit conversion bug, GeV/MeV vs. MeV/GeV. 4280 Replace incorrectly introduced cross-product with original vector 4281 manipulation, written with G4LorentzVector accessors. 4282 4283 - G4CollisionOutput::selectPairToTune(): Test on "i3>0" not appropriate with 4284 G4LorentzVector indexing. Replace with failure-test on "i3<0". Also 4285 simplify final if-cascade for readability. 4286 4287 - G4EquilibriumEvaporator.cc: Replace incorrect G4LorentzVector ctor 4288 arguments (px,py,pz,m) with call to G4LV::setVectM(). 4289 4290 - G4IntraNuclearCascader.cc: Replace leftover momentum_out[0] with .e(). 4291 4292 - G4InuclNuclei.cc,hh: Add new function ::makeNuclearFragment(a,z,exc), 4293 which "manually" construct a G4Ions object for cases where A/Z is not a 4294 valid stable or unstable nucleus. These unphysical objects are passed 4295 back from G4IntraNuclearCascader.cc and immediately passed to G4BigBanger 4296 for conversion to nucleons. A future change should move this action into 4297 G4INCascader and eliminate the need for unphysical nuclei. 4298 4299 - G4LorentzConvertor::toTheTargetRestFrame(): Remove local declaration of 4300 scm_momentum, restoring access to data member with that name. 4301 4302 - G4NucleiModel::generateQuasiDeutron(): Undo consolidation of dmom with 4303 local variables for each of the nucleon momenta. Stack corruption led to 4304 differences in unbound p-n state relative to pp and nn states. 4305 4306 Minor updates: Changed all the "verboseLevel()" initializers to (0), via a 4307 shell script. This allows making the code uniformly verbose or quiet. 4308 4309 include/G4NucleiModel.hh 4310 src/G4Analyser.cc 4311 src/G4CollisionOutput.cc 4312 src/G4ElementaryParticleCollider.cc 4313 src/G4FissionStore.cc 4314 src/G4Fissioner.cc 4315 src/G4IntraNucleiCascader.cc 4316 src/G4NonEquilibriumEvaporator.cc 4317 src/G4NucleiModel.cc 4318 src/G4WatcherGun.cc 4319 4320 16 March 2010 Michael Kelsey (hadr-casc-V09-03-DO-NOT-USE) 4321 -------------------------------------------------- 4322 All changes below within "cascade/" subdirectory: 4323 4324 Restore version hadr-casc-V09-03-05 to HEAD of CVS in order to apply bug 4325 fixes and re-deploy migration from G4CascadeMomentum to G4LorentzVector. 4326 This reversion is tagged as a checkpoint only, and should not be used for 4327 testing or running (since it restores the known bugs in V09-03-03). 4328 4329 The update to G4InteractionCase.hh by Gabriele Cosmo in hadr-casc-V09-03-07 4330 is not touched by this reversion! 4331 4332 The following CVS commands were used to perform the reversion: 4333 4334 cvs update -j1.13 -j1.12 cascade/include/G4CascadParticle.hh 4335 cvs update -j1.4 -j1.3 cascade/include/G4CascadeMomentum.hh 4336 cvs update -j1.15 -j1.14 cascade/include/G4CollisionOutput.hh 4337 cvs update -j1.23 -j1.22 cascade/include/G4ElementaryParticleCollider.hh 4338 cvs update -j1.9 -j1.8 cascade/include/G4InuclCollider.hh 4339 cvs update -j1.19 -j1.18 cascade/include/G4InuclElementaryParticle.hh 4340 cvs update -j1.12 -j1.11 cascade/include/G4InuclNuclei.hh 4341 cvs update -j1.16 -j1.15 cascade/include/G4InuclParticle.hh 4342 cvs update -j1.13 -j1.12 cascade/include/G4InuclSpecialFunctions.hh 4343 cvs update -j1.13 -j1.12 cascade/include/G4LorentzConvertor.hh 4344 cvs update -j1.4 -j1.3 cascade/include/G4ParticleLargerBeta.hh 4345 cvs update -j1.9 -j1.8 cascade/include/G4ParticleLargerEkin.hh 4346 cvs update -j1.20 -j1.19 cascade/src/G4BigBanger.cc 4347 cvs update -j1.13 -j1.12 cascade/src/G4CascadParticle.cc 4348 cvs update -j1.6 -j1.5 cascade/src/G4CascadeElasticInterface.cc 4349 cvs update -j1.68 -j1.67 cascade/src/G4CascadeInterface.cc 4350 cvs update -j1.18 -j1.17 cascade/src/G4CollisionOutput.cc 4351 cvs update -j1.7 -j1.6 cascade/src/G4ElasticCascadeInterface.cc 4352 cvs update -j1.6 -j1.5 cascade/src/G4EvaporationInuclCollider.cc 4353 cvs update -j1.5 -j1.4 cascade/src/G4IBertini.cc 4354 cvs update -j1.3 -j1.2 cascade/src/G4InuclElementaryParticle.cc 4355 cvs update -j1.10 -j1.9 cascade/src/G4InuclEvaporation.cc 4356 cvs update -j1.3 -j1.2 cascade/src/G4InuclNuclei.cc 4357 cvs update -j1.4 -j1.3 cascade/src/G4InuclParticle.cc 4358 cvs update -j1.17 -j1.16 cascade/src/G4InuclSpecialFunctions.cc 4359 cvs update -j1.19 -j1.18 cascade/src/G4LorentzConvertor.cc 4360 cvs update -j1.5 -j1.4 cascade/src/G4PreCompoundCascadeInterface.cc 4361 cvs update -j1.4 -j1.3 cascade/src/G4PreCompoundInuclCollider.cc 4362 4363 Intermediate versions below had bindingEnergy changes from -05 re-applied 4364 4365 cvs update -j1.23 -j1.21 cascade/src/G4EquilibriumEvaporator.cc 4366 cvs update -j1.22 -j1.20 cascade/src/G4Fissioner.cc 4367 cvs update -j1.29 -j1.27 cascade/src/G4IntraNucleiCascader.cc 4368 cvs update -j1.24 -j1.22 cascade/src/G4InuclCollider.cc 4369 cvs update -j1.23 -j1.21 cascade/src/G4NonEquilibriumEvaporator.cc 4370 cvs update -j1.38 -j1.36 cascade/src/G4NucleiModel.cc 4371 4372 G4ElementaryParticleCollider::particleSCMmomentumFor2to2: Restore new 4373 parametrization of elastic scattering added by D.Write in hadr-casc-V09-03-06 4374 4375 cvs update -j1.47 -j1.45 cascade/src/G4ElementaryParticleCollider.cc 4376 + editing 4377 4378 05 Mar 2010 Gabriele Cosmo (hadr-casc-V09-03-07) 4379 ------------------------------------------------ 4380 - Reinstated fix in G4InteractionCase.hh for initialisation in constructor to 4381 allow for porting on C++0x Standard. 4382 4383 07 Feb 2010 Dennis Wright (hadr-casc-V09-03-06) 4384 ----------------------------------------------- 4385 - back out changes from tags V09-03-00 to V00-03-05 by restoring HEAD 4386 to V09-02-11, and keeping the di-nucleon classes 4387 - replace Bertini method bindingEnergy() with 4388 G4NucleiProperties::GetBindingEnergy() in classes 4389 G4IntraNuclearCascader, G4InuclCollider, G4NucleiModel, G4EquilibriumModel, 4390 G4NonEquilibriumModel, G4Fissioner. Note that G4Fissioner still uses the 4391 Bertini method bindingEnergyAsymptotic. 4392 4393 - G4ElementaryParticleCollider::particleSCMmomentumFor2to2 4394 replace original (incorrect) pp, pn, nn 2-body to 2-body scattering angular 4395 distributions with a new parameterization of elastic scattering data using 4396 the sum of two exponentials 4397 4398 02 Feb 2010 Dennis Wright (hadr-casc-V09-03-05) 4399 ----------------------------------------------- 4400 - replace all uses of bindingEnergy (local Bertini method) with the 4401 Geant4 standard G4NucleiProperties::GetBindingEnergy(A,Z) 4402 files modified: 4403 G4IntraNucleiCascader.cc 4404 G4InuclCollider.cc 4405 G4NucleiModel.cc 4406 G4EquilibriumEvaporator.cc 4407 G4NonEquilibriumEvaporator.cc 4408 G4Fissioner.cc 4409 - note that G4Fissioner still uses Bertini method bindingEnergyAsymptotic 4410 4411 28 Jan 2010 Dennis Wright (hadr-casc-V09-03-04) 4412 ----------------------------------------------- 4413 - fix unused variable warnings in G4InuclParticle.hh, .cc and 4414 G4NonEquilibriumEvaporator.cc 4415 4416 26 Jan 2010 Michael Kelsey (hadr-casc-V09-03-03) 4417 ------------------------------------------------ 4418 All changes below within "cascade/" subdirectory: 4419 4420 - G4ParticleLargerBeta.hh: Fix to use of CVS "Name" tag; no code changes. 4421 4422 - G4CascadParticle: Replace the position std::vector<> with G4ThreeVector. 4423 4424 - G4NucleiModel: Replace all std::vector<> coordinates with G4ThreeVector, 4425 and use vector math for computations. 4426 4427 Remove all use of G4CascadeMomentum (a simple container with a C-style 4428 four-element array) with G4LorentzVector. This is a fairly invasive change, 4429 since G4CascMom was used for all of the three- and four-vector operations 4430 throughout the Bertini code: 4431 4432 include/G4CascadParticle.hh 4433 include/G4CollisionOutput.hh 4434 include/G4ElementaryParticleCollider.hh 4435 include/G4InuclCollider.hh 4436 include/G4InuclElementaryParticle.hh 4437 include/G4InuclNuclei.hh 4438 include/G4InuclParticle.hh 4439 include/G4InuclSpecialFunctions.hh 4440 include/G4LorentzConvertor.hh 4441 4442 src/G4BigBanger.cc 4443 src/G4CascadParticle.cc 4444 src/G4CascadeElasticInterface.cc 4445 src/G4CascadeInterface.cc 4446 src/G4CollisionOutput.cc 4447 src/G4ElasticCascadeInterface.cc 4448 src/G4ElementaryParticleCollider.cc 4449 src/G4EquilibriumEvaporator.cc 4450 src/G4EvaporationInuclCollider.cc 4451 src/G4Fissioner.cc 4452 src/G4IBertini.cc 4453 src/G4IntraNucleiCascader.cc 4454 src/G4InuclCollider.cc 4455 src/G4InuclElementaryParticle.cc 4456 src/G4InuclEvaporation.cc 4457 src/G4InuclNuclei.cc 4458 src/G4InuclParticle.cc 4459 src/G4InuclSpecialFunctions.cc 4460 src/G4LorentzConvertor.cc 4461 src/G4NonEquilibriumEvaporator.cc 4462 src/G4NucleiModel.cc 4463 src/G4PreCompoundCascadeInterface.cc 4464 src/G4PreCompoundInuclCollider.cc 4465 4466 The new code is not yet entirely "correct," since Bertini also does a lot of 4467 operations by way of three-momentum, imposing masses (and hence energy 4468 conservation) separately, after the fact. 4469 4470 20 Jan 2010 Gabriele Cosmo 4471 -------------------------- 4472 - G4InteractionCase.hh: Minor fix in initialisation in constructor to 4473 allow for porting on C++0x Standard. 4474 4475 20 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02) 4476 ------------------------------------------------ 4477 - G4LorentzConvertor.hh: Fix scm_momentum data member to be G4ThreeVector 4478 (as used in previous versions) rather than G4LorentzVector. 4479 4480 NOTE: I have *retagged* cascade/include/G4LorentzConverter.hh and this 4481 History file, rather than creating a new tag, since these are private 4482 development only, not public releases. 4483 4484 12 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02) 4485 ------------------------------------------------ 4486 All changes below within "cascade/" subdirectory: 4487 4488 - G4CascadeMomentum: Replace use of static G4LV variables within functions 4489 with mutable data member of object; this does introduce more memory 4490 thrashing, but the plan is to get rid of the whole thing anyway. Improve 4491 implicit casting and add assignment from G4LV. 4492 4493 - G4LorentzConverter: Change function signatures to accept G4LV as input, 4494 using implicit cast to convert existing G4CascadeMomentum argument 4495 passing. Use G4LV internally throughout, again using implicit cast to 4496 return G4CascMom values. This substantially increases (temporarily!) 4497 memory thrashing. Simplify ::rotate() functions to use G4LV and 4498 G4ThreeVec operations rather than array index gymnastics. Move some 4499 function implementations out of .hh file into .cc. 4500 4501 - G4ParticleLargerEkin.hh: Fix use of CVS "Name" tag. No code changes. 4502 4503 12 Jan 2010 Michael Kelsey (hadr-casc-V09-03-01) 4504 ------------------------------------------------ 4505 All changes below within "cascade/" subdirectory: 4506 4507 - G4ParticleLargerBeta, G4ParticleLargerEkin: Add additional operator() 4508 which takes pointers (for future mods to reduce ctor/dtor cycling), and 4509 fix ordering bug in beta sorting. Add debugging printout togged with 4510 preprocessor flag. 4511 4512 - G4InuclParticle, G4InuclNuclei, G4InuclElementaryParticle: Rewrite to 4513 carry G4DynamicParticle data member, and to instantiate particle 4514 properties via G4ParticleDefinition subclasses. This is first stage in 4515 eventually eliminating the G4InuclParticle stuff entirely in favor of 4516 direct use of G4DynamicParticle for internal propagation. 4517 4518 These changes have been testing using debugging output on the production 4519 (4.9.3) code compared to the above changes. |diff| shows mostly identical 4520 results, with occasional ~1e-5 floating point differences. 4521 4522 08 Jan 2010 Michael Kelsey (hadr-casc-V09-03-00) 4523 ------------------------------------------------ 4524 All changes below within "cascade/" subdirectory: 4525 4526 - G4BertiniNuclearModel: REMOVE this class from the HEAD, and hopefully all 4527 future tags. It is redundant with the G4NuclearModel class, and is not 4528 used anywhere in the G4 distribtion; the latter is referenced in both 4529 regular G4 code and in examples. 4530 4531 - G4Diproton, G4Dineutron, G4UnboundPN: New G4ParticleDefinition 4532 subclasses, which implement the Bertini-specific dibaryon states. These 4533 are not used anywhere as yet, but will be used in future modifications to 4534 the G4InuclParticle subclasses. 4535 4536 - G4CascadeMomentum: Add interface to create from and cast to 4537 G4LorentzVector. Will be used (in future) by G4InuclParticle modifications, 4538 and provides a transition to eliminating this class entirely. 4539 4540 1 Dec 2009 Dennis Wright (hadr-casc-V09-02-11) 4541 ---------------------------------------------- 4542 - G4PionSampler, G4NucleonSampler: change loop variable in ctor from i to j 4543 in order to satisfy Windows compiler 4544 4545 11 Nov 2009 Dennis Wright (hadr-casc-V09-02-10) 4546 ----------------------------------------------- 4547 - G4CascadParticle, G4InuclElementaryParticle: add integer argument to ctor 4548 to indicate which generation cascade particle belongs to. 4549 Also change G4NucleiModel and G4BertiniNucleiModel to use this. 4550 4551 8 Oct 2009 Dennis Wright (hadr-casc-V09-02-09) 4552 ----------------------------------------------- 4553 - G4PionSampler: use charge exchange cross section for pi0-p, go back 4554 original Bertini pi0-p elastic partial cs. Update pi0 total cross 4555 section accordingly. Improve fits to pi-p partial cs and update 4556 pi- total cross sections. 4557 - G4NucleiModel: update pi- and pi0 total cross sections 4558 4559 24 Sep 2009 Dennis Wright (hadr-casc-V09-02-08) 4560 ----------------------------------------------- 4561 - add class G4NucleonSampler which replaces old pp, pn, and nn partial and 4562 total cross sections also modify other classes which use them 4563 - move large arrays which are instantiated at every call of frequently 4564 used methods. They are now initialized once in constructors. 4565 - G4CascadSpecialFunctions: put copy of total cross section method 4566 in G4NucleiModel, also remove unneeded energy scale arrays 4567 (now replaced with a new one) 4568 - G4CascadeInterface: move instantiation of various collider classes 4569 outside of loop, and put on stack instead of heap 4570 - G4ElementaryParticleCollider: re-design to use G4NucleonSampler and 4571 remove instantiation of large arrays from within loops in code 4572 - G4NucleiModel: remove instatiation of large arrays from with loops, 4573 add new total cross section sampling, remove use of all but one 4574 energy scale 4575 4576 17 Sep 2009 Dennis Wright (hadr-casc-V09-02-07) 4577 ----------------------------------------------- 4578 - G4PionSampler: remove large static arrays 4579 - G4FinalStateSampler: remove static array pointer to G4 particle types 4580 - G4ElementaryParticleCollider: clean up 4581 4582 4 Sep 2009 Dennis Wright (hadr-casc-V09-02-06) 4583 ---------------------------------------------- 4584 - add assignment operator to class G4CollisionOutput 4585 4586 31 Aug 2009 Dennis Wright (hadr-casc-V09-02-05) 4587 ----------------------------------------------- 4588 - add class G4FinalStateSampler which was accidentally omitted from 4589 the previous tag 4590 4591 25 Aug 2009 Dennis Wright (hadr-casc-V09-02-04) 4592 ----------------------------------------------- 4593 - correct bug in particle ordering in G4PionSampler 4594 - clean up dead code in G4NucleiModel and G4ElementaryParticleCollider 4595 4596 20 Aug 2009 Dennis Wright (hadr-casc-V09-02-03) 4597 ----------------------------------------------- 4598 - create class G4PionSampler: samples partial cross sections, multiplicities 4599 and final state particle types required for pi+, pi- and pi0 scattering 4600 within a nucleus. This class uses re-evaluated pion partial cross sections 4601 and includes production of strange particle pairs. 4602 - G4CascadeSigmaPlusNChannel: correct sigma plus cross sections 4603 - G4CascadSpecialFunctions: move pion, kaon, hyperon total cross sections 4604 to this class 4605 - G4ElementaryParticleCollider: re-write to use G4PionSampler class for 4606 cross sections and multiplicities, remove method reChargering (now redundant) 4607 4608 15 Apr 2009 Dennis Wright (hadr-casc-V09-02-02) 4609 ----------------------------------------------- 4610 - previous tag no longer used. Bring hadr-casc-V09-02-00 back to 4611 HEAD and re-tag 4612 4613 21 Feb 2009 Dennis Wright (hadr-casc-V09-02-01) 4614 ----------------------------------------------- 4615 - add printCrossSection method to G4CascadSpecialFunctions 4616 - in GeElementaryParticleCollider, add high energy flag to distinguish 4617 "string-like" behavior 4618 - G4IntraNucleiCascader.cc - allow secondaries from HE interaction to 4619 leave nucleus without interacting 4620 - G4NucleiModel - get high_energy_interaction flag value from G4ElementaryParticleCollider 4621 4622 11 Feb 2009 V.Ivanchenko (hadr-casc-V09-02-00) 4623 ----------------------------------------------- 4624 - set absorption coefficient 1.0 instead of 0.2 inside 4625 G4CascadSpecialFunctions (D.Wright) 4626 4627 25 Nov 2008 Dennis Wright (hadr-casc-V09-01-10) 4628 ----------------------------------------------- 4629 - fix multiplicity sampling in G4ElementaryParticleCollider::generateMultiplicity(). 4630 Now partial cross sections are normalized to the total cross section instead 4631 of just the sum of 2-body to 6-body final state cross sections. Also fix 4632 2-body cross sections above 7 GeV where they were too small. 4633 Fix the same cross sections which appear in G4CascadSpecialFunctions.cc 4634 4635 21 Nov 2008 Dennis Wright (hadr-casc-V09-01-09) 4636 ----------------------------------------------- 4637 - add some comments to cross section tables in G4CascadSpecialFunctions.cc 4638 and G4ElementaryParticleCollider.cc 4639 4640 24 Oct 2008 Dennis Wright (hadr-casc-V09-01-08) 4641 ----------------------------------------------- 4642 - replace GetAtomicMass() with GetNuclearMass() in cascade/G4InuclEvaporation 4643 and evaporation/G4BertiniEvaporation 4644 - V. Ivantchenko added name to G4CascadeInterface ("Bertini Cascade") 4645 4646 17 Oct 2008 Dennis Wright (hadr-casc-V09-01-07) 4647 ----------------------------------------------- 4648 - added Coulomb barrier plus barrier penetration in G4IntraNucleiCascader.cc 4649 4650 27 Sep 2008 Dennis Wright (hadr-casc-V09-01-06) 4651 ----------------------------------------------- 4652 - Fixed 4.3 compiler warnings for G4InuclElementaryParticle.hh by providing 4653 initializers for particle type and mass 4654 - Remove unused variables totscm, totlab in G4BigBanger.cc, 4655 G4ElementaryParticleCollider.cc, and unused mom1 from G4InuclSpecialFunctions.cc 4656 4657 22 Sep 2008 Gabriele Cosmo (hadr-casc-V09-01-05) 4658 ------------------------------------------------ 4659 - Introduced simple wrapper class G4CascadeMomentum meant to replace usage 4660 of std::vector<double> in the cascade code, to reduce memory allocations. 4661 Courtesy of P.Elmer (princeton Univ.). 4662 - Modified cascade code to make use of G4CascadeMomentum. 4663 4664 3 Sep 2008 Dennis Wright (hadr-casc-V09-01-04) 4665 ----------------------------------------------- 4666 - G4ElementaryParticleCollider.cc: in method generateMultiplicity, remove 4667 large_cut which increases multiplicity from 3 to 4 abruptly at 4 GeV 4668 and above. This caused a sharp drop-off in the single pion spectra from 4669 pH reactions. The effect in heavier nuclei is small. 4670 4671 29 Jun 2008 Dennis Wright (hadr-casc-V09-01-03) 4672 ----------------------------------------------- 4673 - add changes made by M. Paterno, J. Kowalkowski, and M. Fischler (FNAL) 4674 to speed up code. All G4Cascade***Channel classes and related code changed. 4675 4676 5 May 2008 Dennis Wright (hadr-casc-V09-01-02) 4677 ----------------------------------------------- 4678 - retag hadr-casc-V09-csbug as hadr-casc-V09-01-02 4679 4680 30 Apr 2008 Dennis Wright (hadr-casc-V09-csbug) 4681 ----------------------------------------------- 4682 - fix cross section bug in G4CascadSpecialFunctions that returned 4683 low or zero total cross sections for pi-p, pi+n, np, and pi0 4684 interactions 4685 4686 29 Apr 2008 Dennis Wright (hadr-casc-V09-01-01) 4687 ----------------------------------------------- 4688 - bring tag hadr-casc-V09-01-coula to HEAD, make official tag 4689 4690 22 Apr 2008 Dennis Wright (hadr-casc-V09-01-param) 4691 -------------------------------------------------- 4692 - changed pp, nn total cross section parameterization in 4693 G4CascadSpecialFunctions to more closely reflect the PDG values (old one 4694 was off by as much as a factor of 3. 4695 4696 3 Apr 2008 Dennis Wright (hadr-casc-V09-01-coula) 4697 ------------------------------------------------- 4698 - removed Coulomb barrier from G4IntraNucleiCascader.cc (causes unphysical spike) 4699 4700 3 Apr 2008 Dennis Wright (hadr-casc-V09-01-coul) 4701 ------------------------------------------------ 4702 - Added Coulomb barrier in G4EquilibriumEvaporator.cc, G4IntraNucleiCascader.cc 4703 4704 17 Nov 2007 Dennis Wright (hadr-casc-V09-00-02) 4705 ----------------------------------------------- 4706 - Fix angular distribution for nucleon-nucleon elastic scattering 4707 above 2.8 GeV, by modifying G4ElementaryParticleCollider::getElasticCase 4708 4709 25 May 2007 Dennis Wright for Aatos Heikkinen (hadr-casc-V08-03-00) 4710 ------------------------------------------------------------------- 4711 - implemented interfaces for pre-equilibrium and equilbrium evaporation 4712 models 4713 4714 04 May 2007 Aatos Heikkinen (hadr-casc-V08-02-00) 4715 ------------------------------------------------- 4716 4717 - Added protection in G4ElementaryParticleCollider against negative 4718 value to sqrt(). 4719 4720 08 May 2006 Dennis Wright (hadr-casc-V08-00-00) 4721 ----------------------------------------------- 4722 4723 - cascade: remove G4BERTINI_KAON conditional assembly flags. Files 4724 affected: 4725 G4ElementaryParticleCollider.hh, cc 4726 G4InuclElementaryParticle.hh 4727 G4NucleiModel.hh, cc 4728 G4CascadeInterface.cc 4729 G4IntraNucleiCascader.cc 4730 4731 - cascade (Pekka Kaitaniemi): G4ElasticCascadeInterface: derive 4732 from G4VIntraNuclearTransportModel instead of G4HadronElastic. 4733 Check for case when no elastic scattering occurs. If so, 4734 return original bullet and target. 4735 4736 24 Nov 2005 Dennis Wright (hadr-casc-V07-01-00) 4737 ---------------------------------------------- 4738 4739 - cascade (bertini-V07-01-00 by Aatos Heikkinen) 4740 elastic scattering interface added: 4741 G4ElasticCascadeInterface.hh, .cc added 4742 G4CascadeInterface.hh modified