Changeset 1340 for trunk/source/processes/hadronic/models/cascade/History
- Timestamp:
- Nov 5, 2010, 3:45:55 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/cascade/History
r1337 r1340 1 $Id: History,v 1. 91 2010/06/11 17:07:23mkelsey Exp $1 $Id: History,v 1.203 2010/10/22 20:41:05 mkelsey Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 16 16 --------------------------------------------------------------- 17 17 18 11 June 2010 Michael Keley (hadr-casc-V09-03-43) 19 ------------------------------------------------ 18 22 October 2010 Michael Kelsey (hadr-casc-V09-03-84) 19 ---------------------------------------------------- 20 - G4WatcherGun.cc: Change first numeric argument to G4NuclWatcher to int. 21 22 NOTE: Only this change is include in tag. 23 24 20 October 2010 Michael Kelsey (kelsey-20101020b) 25 ------------------------------------------------- 26 - G4NucleiModel: Add scaling factors ("units") for nuclear radii and 27 cross-sections, in order to adapt calculations to the literature. 28 29 20 October 2010 Michael Kelsey (kelsey-20101020a) 30 ------------------------------------------------- 31 - G4NucleiModel: Re-activate changes in worthToPropagate() to use existing 32 nuclear potential values for kaons and hyperons to decide on trapping. 33 34 20 October 2010 Michael Kelsey (kelsey-20101020) 35 ------------------------------------------------ 36 - G4NucleiModel: Clean up some bugs in refactoring generateModel(). Back 37 out changes (28 Sep) in worthToPropagate() in order to compare refactored 38 to production code. 39 40 20 October 2010 Michael Kelsey (hadr-casc-V09-03-83) 41 ---------------------------------------------------- 42 - G4CascadParticle.cc: Remove debugging output left in by accident. 43 44 NOTE: Tag does not include reorganization of G4NucleiModel (5 Oct 2010) 45 46 19 October 2010 Michael Kelsey 47 ------------------------------ 48 G4FissionStore, G4FissionConfiguration: Undo migration to integer A and Z. 49 50 19 October 2010 Michael Kelsey 51 ------------------------------ 52 Clean up CoVerity software analysis reports (three are ignored from obsolete 53 code): 54 G4Analyser.cc 55 G4CascadeCheckBalance.cc 56 G4CascadeInterpolator.icc 57 G4CascadeSampler.icc 58 G4CollisionOutput.cc 59 G4ElementaryParticleCollider.cc 60 G4InuclCollider.cc 61 G4NuclWatcher.cc 62 G4NucleiModel.hh,cc 63 G4RegionModel.cc 64 65 14 October 2010 Michael Kelsey 66 ------------------------------ 67 - G4NucleiModel.cc: Fix misspelled "G4doulbe" -> G4double. 68 69 Pick up several missed bits of the "integer A and Z migration," mostly in 70 test and diagnostic code: 71 72 G4Analyser.hh,cc 73 G4FissionConfiguration.hh 74 G4FissionStore.hh,cc 75 G4NuclWatcher.hh,cc 76 77 14 October 2010 Michael Kelsey (hadr-casc-V09-03-82) 78 ---------------------------------------------------- 79 - G4CascadParticle.cc: Add protection in getPathToTheNextZone() so that d2 80 is always computed non-negative. Avoids 10^-5 FPEs. 81 82 05 October 2010 Michael Kelsey 83 ------------------------------ 84 - G4NucleiModel: Major reorganization of generateModel() code. 85 1) Rename integration functions from "volNumInt[1]" to "zoneIntegralxxx" 86 with "xxx" = "WoodsSaxon" or "Gaussian". 87 2) Move hardwired constants out to static data members, give clear names. 88 3) Split function into separate pieces to set binding energies, zone 89 radii, volume/density values, and potential heights. 90 4) Within new functions, simplify if-cascades where possible, eliminate 91 duplicated code. 92 5) Move std::vector<> buffers out to data members. 93 94 Also, modify worthToPropagate() to use non-nucleon potential heights to 95 terminate propagation. Previously, non-nucleons could never fail, as the 96 "getFermiKinetic" always returned zero. 97 98 28 September 2010 Michael Kelsey (hadr-casc-V09-03-81) 99 ------------------------------------------------------ 100 - G4BigBanger: Missed some integer A/Z migrations, which caused a bus error 101 in test47. 102 103 26 September 2010 Michael Kelsey (hadr-casc-V09-03-80) 104 ------------------------------------------------------ 105 - G4VCascadeDeexcitation.hh: NEW abstract base class for post-cascade 106 processing. Some common activities will be implemented here from the two 107 actual modules. 108 109 - G4CascadeDeexcitation, G4PreCompoundDeexcitation: Use new base class 110 above, reorganize code in collide() to use new deExcite(G4Fragment*) where 111 appropriate. 112 113 - G4InuclCascader.hh: Reference new base class for de-excitation modules. 114 115 25 September 2010 Michael Kelsey 116 -------------------------------- 117 - G4CascadeColliderBase: Add explosion(G4Fragment*) and explosion(A,Z,Eexc). 118 Move implementation to latter, and write others as call-throughs. Add 119 Z==0 condition for explosion, regardless of A. 120 121 - G4EquilibriumEvaporator.hh: Remove explosion(G4InuclNuclei*), as 122 unnecessary. Existing explosion(A,Z,E) now overrides base class. 123 124 - G4CollisionOutput: Add function to process G4ReactionProducts from 125 PreCompound. 126 127 - G4PreCompoundDeexcitation.cc: Move G4ReactionProducts loop to 128 G4CollisionOutput. 129 130 24 September 2010 Michael Kelsey 131 -------------------------------- 132 - G4IntraNucleiCascader.cc: Minor shuffle of post-cascade recoil checking, 133 in preparation for moving fragment construction and processing away. 134 135 - G4CollisionOutput.cc: Replace names "TargetFragment*" and "NucleiFragment*" 136 with "OutgoingNuclei" and "OutgoingNucleus" for consistency with 137 "OutgoingParticles" names. This affects the following source files, all 138 of which are modified to match (using |sed|): 139 140 cascade/include/G4Analyser.hh 141 cascade/include/G4CollisionOutput.hh 142 cascade/src/G4Analyser.cc 143 cascade/src/G4CascadeCheckBalance.cc 144 cascade/src/G4CascadeDeexcitation.cc 145 cascade/src/G4CascadeInterface.cc 146 cascade/src/G4CollisionOutput.cc 147 cascade/src/G4EquilibriumEvaporator.cc 148 cascade/src/G4Fissioner.cc 149 cascade/src/G4IntraNucleiCascader.cc 150 cascade/src/G4InuclCollider.cc 151 cascade/src/G4InuclEvaporation.cc 152 cascade/src/G4NonEquilibriumEvaporator.cc 153 cascade/src/G4PreCompoundDeexcitation.cc 154 155 - G4CollisionOutput: Add new G4Fragment data member, with get() and add() 156 accessors. This fragment is *not* used by setOnShell() or by any of the 157 event-total calculations. It will be filled by G4IntraNucleiCascader for 158 use by de-excitation modules. Include G4Fragment in diagnostic output if 159 not empty. 160 161 - G4CascadeRecoilMaker.cc: Remove G4Fragment::SetExcitationEnergy() call. 162 163 - G4InuclNuclei: Add new constructor to create from G4Fragment input, and 164 new makeG4Fragment() to spit out a G4Fragment. Also provide a casting 165 operator for the latter. 166 167 24 September 2010 Michael Kelsey (hadr-casc-V09-03-79) 168 ------------------------------------------------------ 169 Fix numerous compilation warnings on Linux (not seen on MacOSX) left over 170 from migration to integer A and Z (-73 tag). 171 172 G4BigBanger.cc 173 G4CascadeCheckBalance.hh 174 G4CascadeColliderBase.cc 175 G4CascadeRecoilMaker.cc 176 G4EquilibriumEvaporator.hh,cc 177 G4ExitonConfiguration.hh 178 G4Fissioner.cc 179 G4InuclCollider.cc 180 G4NonEquilibriumEvaporator.cc 181 G4NucleiModel.cc 182 183 - G4PreCompoundDeexcitation.cc: Drop "G4int" casts as no longer required. 184 185 23 September 2010 Michael Kelsey (hadr-casc-V09-03-78) 186 ------------------------------------------------------ 187 - G4CascadeInterface, G4InuclCollider: change user selection function name 188 to usePreCompoundDeexcitation(), per Julia Yarba. 189 190 - G4PreCompoundCascadeInterface.hh,.cc, G4PreCompountInuclCollider.hh,.cc: 191 REMOVE THESE CLASSES. These were copied and modified versions of the 192 standard versions, in order to test the new pre-compound de-excitation. 193 That has been integrated with runtime flags, so the parallel versions are 194 not required. 195 196 23 September 2010 Michael Kelsey 197 -------------------------------- 198 - G4InuclElementaryParticle.cc: Drop warning message when converting 199 G4ParticleDefinition to type code. 200 201 - G4CascadeInterface: Add functions for user selection of which 202 post-cascade module to use for de-excitation of the residual nucleus. 203 These call through to the equivalent G4InuclCollider functions. 204 205 - G4InuclCollider: Add functions for user selection of which 206 post-cascade module to use for de-excitation of the residual nucleus. 207 These delete and re-instantiate the appropriate de-excitation "collider". 208 209 - G4PreCompoundDeexcitation: Remove convertFragment() function, remove 210 pass-by-value std::vector<> from getDeExcitedFragments() (use data member 211 instead). Clean up some obsolete code usage. 212 213 - G4CascadeRecoilMaker: Change fragment-making interface: 214 makeRecoilNuclei() now returns G4InuclNuclei* for standard Bertini colliders. 215 makeRecoilFragment() returns G4Fragment* for external PreCompound models. 216 addExcitonConfiguration() sets local copy of excitons, needed in order to 217 call the individual G4Fragment->Setxxx() functions. 218 219 - G4IntraNucleiCascader.cc: Follow renaming RecoilMaker::makeRecoilNuclei(), 220 use new addExcitonConfiguration(). 221 222 - G4CascadeRecoilMaker: Change fragment-making interface: 223 makeRecoilNuclei() now returns G4InuclNuclei*. 224 makeRecoilFragment() returns G4Fragment*. 225 addExcitonConfiguration() sets local copy of excitons, needed in order to 226 call the individual G4Fragment->Setxxx() functions. 227 228 - G4IntraNucleiCascader.cc: Follow renaming RecoilMaker::makeRecoilNuclei(), 229 use new addExcitonConfiguration(). 230 231 22 September 2010 Michael Kelsey 232 -------------------------------- 233 - G4CascadeMomentum.hh: This should have been removed from the package long 234 ago. Apologies for the oversight. 235 236 22 September 2010 Julia Yarba 237 ----------------------------- 238 Added 1st prototype of interface between Bartini cascade and PreCompound model 239 (post-cascade de-excitation). 240 241 Changes only to: 242 /geant4/source/processes/hadronic/models/cascade/cascade 243 244 New developments are those G4PreCompound* classes; the GNUmakefile adapted to 245 include necessary links. 246 247 The PreComp wrapper is G4PreCompundDeexcitation class. 248 249 The logic, loops, conditions, etc., in the event processing are the same as in 250 the "native" Bertini code. I actually copied it over from G4CascadeInterface, 251 and started from there. 252 253 However, there're a few technical changes that I'd like to mention. 254 255 1. G4PreCompoundInterface inherits directly from G4HadronicInteraction. 256 I felt that we'd not need G4VIntra..., because its only advantage is a pointer 257 (and related access methods) to G4VPreCompoundModel. 258 This has now moved to the de-excitation wrapper. 259 260 2. In the Collider itself, I've made the data member to be 261 G4CascadeColliderBase* theDeexcitation 262 This way, it can be transparently set to the native one or the PreComp one 263 (both inherit from G4CascadeColliderBase). 264 265 3. There's a setDeExcitation(...) methond in the collider, and also in the interface 266 (which will pass it down to the collider). 267 268 19 September 2010 Michael Kelsey (hadr-casc-V09-03-77) 269 ------------------------------------------------------ 270 - G4CascadeInterface.cc: Bug fix to logic in retryInelasticNucleus() 271 272 17 September 2010 Michael Kelsey (hadr-casc-V09-03-76) 273 ------------------------------------------------------ 274 - G4CascadeInterface: Add support to pass nucleus projectiles into 275 collider. Not tested or guaranteed to work, but G4IntraNucleiCascader is 276 supposed to deal with them. 277 278 16 September 2010 Michael Kelsey 279 -------------------------------- 280 - G4CascadeInterface: Extensive reorganization, moving most 281 functionality out of ApplyYourself and into small member functions. 282 Complicated end-of-loop conditions encapsulated. Data members made into 283 pointers to hide dependences from outside world. 284 285 16 September 2010 Michael Kelsey (hadr-casc-V09-03-75) 286 ------------------------------------------------------ 287 - G4CascadeInterface.cc: Add parentheses in end-of-while block to fix 288 compilation warning in GCC 4.3. 289 290 - G4IntraNucleiCascader.cc: In decayTrappedParticle(), check for photon 291 daughters and put them directly onto output list. 292 293 16 September 2010 Michael Kelsey 294 -------------------------------- 295 - G4CascadParticle.hh: Make getGeneration() const. 296 297 - G4CascadeDeexcitation.hh: Fix compiler warning about order of data members. 298 299 - G4IntraNucleiCascader: Intercept hyperons which are "trapped" in nuclear 300 potential, and decay them immediately to produce usable secondaries. This 301 resolves problem with sub-MeV final-state hyperons (reported by A. Dotti), 302 but is not entire correct. Properly, the hyperon should be incorporated 303 into a hypernucleus fragment. 304 305 - G4InuclElementaryParticle.hh: Add hyperon() identification function, and 306 constructor to take G4DynamicParticle directly. 307 308 - G4InuclParticle.hh, G4InuclNuclei.hh: Add constructor to take 309 G4DynamicParticle directly. 310 311 15 September 2010 Michael Kelsey (hadr-casc-V09-03-74) 312 ------------------------------------------------------ 313 - G4CascadeDeexcitation: NEW collider to handle post-cascade processing of 314 nuclear fragment. Encapsulates BigBanger and Evaporators. Eventually 315 will have alternative (configurable or #ifdef) implementation using G4 316 external "pre-compound" models instead of Bertini factories. 317 318 - G4InuclCollider: Remove post-cascade colliders (BigBanger, Evaporators), 319 replace with new G4CascadeDeexcitation. 320 321 - G4LorentzConverter: Move construtor implementations to .cc file, and make 322 sure all constructors have initializers for all data members. 323 324 14 September 2010 Michael Kelsey (hadr-casc-V09-03-73) 325 ------------------------------------------------------ 326 Migrate to integer A and Z values for nuclear configurations. Includes both 327 explicit arguments for G4InuclNuclei, and function arguments, computational 328 parameters involved in nuclear configurations, breakup, etc. 329 330 G4CascadeCheckBalance.cc 331 G4CascadeInterface.cc 332 G4CascadeRecoilMaker.hh 333 G4Fissioner.hh,cc 334 G4InuclEvaporation.cc 335 G4InuclNuclei.hh,cc 336 G4InuclSpecialFunctions.hh 337 G4NonEquilibriumEvaporator.hh,cc 338 G4NucleiModel.hh,cc 339 G4PreCompoundCascadeInterface.cc 340 bindingEnergy.cc 341 bindingEnergyAsymptotic.cc 342 nuclearLevelDensity.cc 343 paraMaker.cc 344 345 - G4InuclSpecialFunctions.hh: Eliminate bindingEnergy functions which are 346 no longer used, along with their .cc files: 347 348 bindingEnergyKummel 349 bindingEnergyExact 350 351 Migration validated using 100 events (20 GeV pi+ on lead) with verbose==4. 352 Entire log files (9.6M lines, 433 MB) identical before and after migration. 353 354 13 September 2010 Michael Kelsey 355 -------------------------------- 356 - G4InuclElementaryParticle: Move printParticle() implementation to .cc, 357 and add printing of particle name to output. 358 359 - G4InuclNuclei.cc: Move base-class printing to first line of output, to 360 match G4InuclEP. 361 362 10 September 2010 Michael Kelsey (hadr-casc-V09-03-72) 363 ------------------------------------------------------ 364 - G4CascadeRecoilMaker: Add new goodNucleus() function with functionality 365 from G4IntraNucleiCascader::goodCase(). Add parameter to set "rounding 366 tolerance" for small/negative mass differences. Drop getRecoilFragment() 367 in favor of user calling makeRecoilFragment() directly (instead of doing 368 it collide()), which returns a non-const pointer. 369 370 - G4IntraNucleiCascader: Remove previously introduced getResidualMass() and 371 makeResidualFragment() functions, along with G4InuclNuclei object. 372 Replace with new RecoilMaker utility. Move goodCase() to RecoilMaker, and 373 begin to simplify end-of-cascade processing. 374 375 - G4ExitonConfiguration.hh: Add function to reset values to zero. 376 377 - G4InuclNuclei: Add function to zero out exciton configuration, and use 378 it in fill() functions. 379 380 9 September 2010 Michael Kelsey 381 ------------------------------- 382 - G4CascadeCheckBalance: Add new collide() interface to take lists of both 383 G4InuclElementaryParticles and G4CascadParticles; supports use by 384 G4IntraNucleiCascader and G4CascadeRecoilMaker. 385 386 - G4CascadeRecoilMaker: NEW pseudo-Collider class to compute the nuclear 387 recoil kinematics of a cascade, either in process or completed. To be 388 used by G4IntraNucleiCascader; uses G4CascadeCheckBalance to do work. 389 390 6 September 2010 Michael Kelsey (hadr-casc-V09-03-71) 391 ----------------------------------------------------- 392 - G4NucleiModel: Add protections in generateInteractionPartners() so that 393 nucleon and quasideuteron interactions are only selected if there are 394 "enough" nucleons of the necessary type still available (xxxNumberCurrent). 395 396 - G4InuclNuclei: Add fill() functions which overwrite the entire particle 397 structure, with same argument lists as constructors. Will be used mainly 398 by G4IntraNucleiCascader::makeResidualFragment(). 399 400 - G4IntraNucleiCascader: Hide non-physical nucleus message behind verbose 401 flag. Add function and data member to build recoil nucleus (fragment) at 402 end of every iteration; will eventually replace functionality of 403 getResidualMass(). 404 405 2 September 2010 Michael Kelsey (hadr-casc-V09-03-70) 406 ----------------------------------------------------- 407 - G4NucleiModel.cc: Restore hadr-casc-V09-03-68 revision 1.71, and remove 408 the two resize(3) actions. 409 410 NOTE: The exercise below has (finally) resolve the cross-section 411 discrepancy reported by Sunanda Banerjee back in July. It turns out that my 412 use of "resize(3)" to pre-allocate the qdeutron and acsec buffers on each 413 interaction was incorrect. This doesn't just reserve memory, it fills the 414 vectors with three elements, so that subsequent push_back()'s fill [3], [4], 415 etc. 416 417 2 September 2010 Michael Kelsey 418 ------------------------------- 419 - G4NucleiModel.cc: Reverted to hadr-casc-V09-03-38 revision 1.45, and 420 interface changes incorporated. See NOTE below from 28 July 2010. 421 Cross-section changes have not been resolved or validated. Since -38 422 revision has better data/MC matching (ratio near 1), it is restored as the 423 baseline version, and changes will be re-done incrementally. 424 425 Each increment after (0) is tagged "kelsey-20100902x", x=a,b,c,d etc. 426 427 0) Implement new ctor and generateModel() calls 428 Make cross-section tables statically initialized 429 Include absorptionCrossSection definition 430 1) Use lookup tables for cross-sections, and new interpolator 431 Change CHC_CHECK to G4CASCADE_DEBUG_CHARGE 432 2) Use this package's bindingEnergy() function 433 3) Update diagnostic messages and verbosity levels; 434 Add missing initializers to all constructors; 435 Use data-member buffer for G4CollisionOutput 436 4) Use generateWithRandomAngles() everywhere appropriate; 437 Collapse if-cascades to use if-return where possible 438 5) Make generateModel() re-usable with data-member buffers 439 6) Energy-momentum conservation checking; 440 Implement generateNucleonMomentum; 441 Remove extraneous semicolons and blank lines 442 7) Use local variables in passFermi(); 443 Fix some minor LorentzVector calculations; 444 Use generateNucleonMomentum() for quasi-deuterons 445 8) Use data-member buffers for quasideuterons, coords, mom. 446 9) Use enum labels for quasideuteron codes 447 10) Restore Dennis' improved potential (6-zone) calculations 448 449 4 August 2010 Michael Kelsey (hadr-casc-V09-03-69) 450 -------------------------------------------------- 451 - G4CascadeData: Add name data member and optional ctor argument, use 452 when printing tables. 453 454 - G4CascadeFunctions.icc: Pretty-up printing output using name string. 455 456 - G4Cascade*Channel.cc: Add name string to data() ctor, use central part of 457 class name, e.g., "PiMinusP" for G4CascadePiMinusPChannel. 458 459 - G4ElementaryParticleCollider.cc: Add printing of all final-state tables, 460 one time only, protected by G4CASCADE_DEBUG_SAMPLER. 461 462 - GNUmakefile: Add G4CASCADE_DEBUG_SAMPLER preprocessor flag. 463 464 3 August 2010 Michael Kelsey (hadr-casc-V09-03-68) 465 -------------------------------------------------- 466 - G4CascadeData.hh: Add print() and printXsec() functions to dump tables. 467 - G4CascadeData.icc: Move implementations out of G4CascadeData.hh file. 468 469 - G4CascadeFunctions.hh,icc: Add printTable() to dump tables. 470 471 - G4CascadeInterpolator.hh,icc: Add printBins() to dump energy bin edges. 472 473 - G4CascadeSampler.hh,icc: Add print() to call through to interpolator. 474 475 NOTE: This should be the last set of functional changes for a while. 476 Sunanda Bannerjee reported substantial changes in validation plots for the 477 Bertini cascade between 4.9.3-ref-05 (hadr-casc-V09-03-23-01) and 478 4.9.3-ref-06/4.9.4-beta-01 (hadr-casc-V09-03-43). 479 480 28 July 2010 Michael Kelsey (hadr-casc-V09-03-67) 481 ------------------------------------------------- 482 - G4NucleiModel.cc: Set deuteron arrays to fixed length (3). Add A/Z 483 values to generateModel diagnostic message. 484 485 - G4EquilibriumEvaporator.cc: Change some fixed length std::vector<> to 486 simple C arrays. 487 488 - G4Fissioner.cc: Move G4FissionStore to class data member for reuse. 489 490 - G4FissionStore: Add ::clear() function to support reuse, move addConfig() 491 implementation to .cc file. 492 493 - G4IntraNucleiCascader: Move G4NucleiModel to class-level data member 494 (pointer) so it can be reused across collisions. 495 496 26 July 2010 Michael Kelsey 497 --------------------------- 498 - G4Analyzer.cc: Use const-refs for particle lists. 499 500 - G4BigBanger, G4ElementaryParticleCollider: Move std::vector<> buffers to 501 .hh file to allow reuse. 502 503 - G4NucleiModel.cc: Simplify buffers used in generateModel() to reduce 504 G4double allocations. 505 506 23 July 2010 Michael Kelsey (hadr-casc-V09-03-66) 507 ------------------------------------------------- 508 - G4CascadeInterface: Move G4CollisionOutput to .hh file for reuse between 509 events. 510 511 - G4IntraNucleiCascader: Move buffers for cascade output to .hh file, so 512 they can be reused between events. 513 514 - G4NucleiModel: Move G4CollisionOutput to .hh file for reuse; use 515 references for bullet and target args to G4EPCollider. 516 517 21 July 2010 Michael Kelsey (hadr-casc-V09-03-65) 518 ------------------------------------------------- 519 - GNUmakefile: Add new G4CASCADE_CHECK_ECONS to turn off all of the 520 internal conservation checks (reduce std::vector<> memory churn!). 521 522 - G4CascadeColliderBase.cc: Use G4CASCADE_CHECK_ECONS to set the default 523 value of "doConservationChecks": true if defined, false if not defined. 524 This is done with #ifdef-else-endif block, NOT some fancy macro. 525 526 - G4CascadeInterface.cc: Use G4CASCADE_SKIP_ECONS to toggle reporting 527 violations before end of loop (don't need to call balance.okay() twice!). 528 529 - G4ElementaryParticleCollider.cc: Put verbosity check before call to 530 validateOutput() to avoid unnecessary vector manipulations. 531 532 - G4IntraNucleiCascader.cc: Set doConservationChecks = true 533 unconditionally; used to reject bad cascades. 534 535 - G4NucleiModel.cc: Use G4CASCADE_CHECK_ECONS to hide balance.collide(). 536 537 20 July 2010 Michael Kelsey (hadr-casc-V09-03-64) 538 ------------------------------------------------- 539 - G4CascadeColliderBase: Make G4CascadeCheckBalance a pointer member, move 540 ctor and dtor to .cc file. Change balance tolerances to 1 per mil and 1 541 MeV. 542 543 - G4InuclCollder: Make all colliders pointer members. 544 545 - G4IntraNucleiCascader: Make EPCollider a pointer member, and call 546 G4CollisionOutput::setOnShell() to balance energy-momentum for null fragments. 547 548 - G4InuclNuclei.cc: Preserve momentum magnitude when setting excitation 549 energy by setting mass and kinetic energy. 550 551 19 July 2010 Michael Kelsey (hadr-casc-V09-03-63) 552 ------------------------------------------------- 553 - G4CascadeCheckBalance.cc: Change zero-tolerance to 10 keV (1e-5) from 554 1 keV (1e-6). 555 556 - G4CollisionOutput.hh: Fix capitalization of "numberOfOutgoingParticles". 557 558 - G4EquilibriumEvaporator.cc: Remove duplicate EEXS setting. 559 560 - G4InuclNuclei: Change implementation of setExitationEnergy() to adjust 561 mass while keeping momentum vector constant. Currently done with 562 "expensive" LorentzVector manipuation. Should be done by recomputing 563 kinetic energy given new mass value. 564 565 - G4NonEquilibriumEvaporator.cc: Modify particle-creation block to work as 566 G4EquilibriumEvaporator now does. Simplify some if-blocks. 567 568 16 July 2010 Michael Kelsey (hadr-casc-V09-03-62) 569 ------------------------------------------------- 570 - G4CollisionOutput: Add interfaces to handle G4CascadParticles. 571 572 - G4IntraNucleiCascader: Eliminate local "inter_case" data member and 573 function. Use base class G4InteractionCase directly. Add functionality 574 to test for conservation and recoil before exiting "itry" loop, and redo 575 cascade if unbalanced recoil fragment. 576 577 - G4{PreCompound}InuclCollider.cc: Drop "setInteractionCase()" function. 578 579 15 July 2010 Michael Kelsey (hadr-casc-V09-03-61) 580 ------------------------------------------------- 581 - G4CollisionOutput: New ::add() function to combine two objects. New 582 accessors to get total charge and baryon number. 583 584 - G4CascadeCheckBalance: Make tempOutput data member, for thread-safety, 585 rather than static variables. Use new G4CollisionOutput accessors. 586 587 - G4IntraNucleiCascader.cc: Move local output buffers outside while loop, 588 use std::vector<>::insert() for copying. 589 590 - G4InuclCollider.cc: Use new G4CollisionOutput::add() interface. 591 592 - G4NucleiModel.cc: Hide conservation checks behind verbose>2. Otherwise 593 log files get too big 594 595 15 July 2010 Michael Kelsey (hadr-casc-V09-03-60) 596 ------------------------------------------------- 597 - G4CascadeCheckBalance: Add layer of protection in relativeX() (check 598 initial values) to avoid divide-by-zero errors. Add another interface to 599 accept list of G4CascadParticles, for use with G4NucleiModel. Add check 600 of momentum direction balance, not just magnitudes. 601 602 - G4IntraNucleiCascader.cc: Rearrange end-of-loop if-blocks to allow for 603 conservation checking prior to return. Add reporting of both too-low and 604 too-high residual energy (at verbose=2) for single-nucleon fragments. 605 606 - G4InuclCollider.cc: Remove re-named conservation checks, now all done by 607 colliders themselves. 608 609 - G4InuclParticle.hh: Add setKineticEnergy() function to simplify handling 610 of some kinematics. 611 612 - G4NucleiModel: Add G4InuclNuclei data member (created in generateModel()), 613 for use with conservation checks. Do check at end of generateParticleFate(). 614 615 15 July 2010 Michael Kelsey (hadr-casc-V09-03-59) 616 ------------------------------------------------- 617 - G4InuclNuclei: Use G4DynamicParticle::theDynamicalMass to carry around 618 excitation energy (== theDynamicalMass-thePDGMass). This allows 619 excitation to be changed on the fly, with all kinematics handled 620 correctly. It also allows ONLY the ground state nucleus to be created as 621 a G4Ions object (whether global or private), reducing the number of such 622 objects by a factor of thousands. 623 624 14 July 2010 Michael Kelsey (hadr-casc-V09-03-58) 625 ------------------------------------------------- 626 - G4CollisionOutput.cc: For initial four-momentum adjustment, skip over 627 particles which would acquire negative energy after "correction." 628 629 - G4ElementaryParticleCollider.cc: Bug fix for two-body final states. 630 Kinematics should not require "rescaling." That was driven by states 631 which were kinematically forbidden, with m1+m2 > etot_scm (e.g., pi0 p -> 632 pi+ n with just 5 MeV kinetic energy). Now those states are caught and 633 rejected. 634 635 - G4CascadeInterface.cc, G4InuclCollider.cc: Improve diagnostics reporting 636 number of retries. 637 638 - G4EquilibriumEvaporator.cc: When computing residual excitation 639 (EEXS_new), original thrown energy, S, should be used, not reboosted 640 particle after recoil. Simplify evaporation kinematics to conserve 641 four-momentum automatically (PEX -= mom). 642 643 14 July 2010 Michael Kelsey (hadr-casc-V09-03-57) 644 ------------------------------------------------- 645 - G4CascadeColliderBase: New subclass of G4VCascadeCollider, which takes 646 over all of its concrete functionality, and adds conservation checker 647 (G4CascadeCheckBalance) as data member. Wrapper functions and control 648 flag allow colliders to user it transparently. 649 650 - G4VCascadeCollider: Move concrete functionality to new base class. 651 652 - All colliders: Change base class to new G4CascadeColliderBase. Remove 653 local copies of conservation-checker, using new base function instead. 654 655 cascade/include/G4BigBanger.hh 656 cascade/include/G4ElementaryParticleCollider.hh 657 cascade/include/G4EquilibriumEvaporator.hh 658 cascade/include/G4EvaporationInuclCollider.hh 659 cascade/include/G4Fissioner.hh 660 cascade/include/G4IntraNucleiCascader.hh 661 cascade/include/G4InuclCollider.hh 662 cascade/include/G4NonEquilibriumEvaporator.hh 663 cascade/include/G4PreCompoundInuclCollider.hh 664 cascade/src/G4BigBanger.cc 665 cascade/src/G4ElementaryParticleCollider.cc 666 cascade/src/G4EquilibriumEvaporator.cc 667 cascade/src/G4EvaporationInuclCollider.cc 668 cascade/src/G4Fissioner.cc 669 cascade/src/G4IntraNucleiCascader.cc 670 cascade/src/G4InuclCollider.cc 671 cascade/src/G4NonEquilibriumEvaporator.cc 672 cascade/src/G4PreCompoundInuclCollider.cc 673 674 - G4EquilibriumEvaporator: Use new functionality (above) to turn off 675 conservation checks when evaporating fission products. 676 677 - G4CascadeInterface.cc: Report number of retries in verbose messages. 678 679 - G4IntraNucleiCascader.cc: Remove sanity check on afin/zfin vs. model. 680 681 13 July 2010 Michael Kelsey (hadr-casc-V09-03-56) 682 ------------------------------------------------- 683 - G4CascadeCheckBalance: Add zero protection (needed for momentum ratio) 684 using a static tolerance parameter. 685 686 - G4EquilibriumEvaporator.cc: Add dumping of G4CollisionOutput before exit, 687 some fixes for "PEX" adjustments as EEXS changes. 688 689 - G4NonEquilibriumEvaporator.cc: Add conservation checking, dump of output, 690 some fixes for "PEX" adjustments as EEXS changes. 691 692 - G4Fissioner.cc: Add conservation checking, remove addition of excitation 693 energy to input nucleus mass, since already included. 694 695 13 July 2010 Michael Kelsey 696 --------------------------- 697 - G4CascadeCheckBalance.cc: Hide violation reports behind verbose == 1. 698 699 - G4ElementaryParticleCollider.cc: Bump ::collide() message to verbose > 1. 700 701 - G4EquilibriumEvaporator.cc: Add conservation checking, collapse if-cascades 702 by doing failure tests and exits up front, add sanity check on eex_real. 703 704 - G4IntraNucleiCascader.cc: Add diagnostic messages and some FIXME 705 comments, validate afin/zfin against G4NucleiModel result. 706 707 - G4InuclCollider.cc: Move conservation check outside verbosity flag. This 708 adds to CPU usage, so may need #ifdef protection later. Adjust a few 709 verbosity levels. 710 711 - G4LorentzConvertor.cc: Bump all diagnostic messages to verbose > 2. 712 713 - G4NucleiModel.cc: Simplify main if-block to put failure up front; add 714 debugging messages when decrementing proton or neutron counts. 715 716 11 July 2010 Michael Kelsey 717 --------------------------- 718 - G4CascadeCheckBalance: Add ctor argument with name of parent class; use 719 this name when reporting results. Add interface for nuclear fragment 720 list. Allow parent class name to be changed dynamically. 721 722 - G4BigBanger.cc, G4CascadeInterface.cc, G4ElementaryParticleCollider.cc, 723 G4InuclCollider.cc, G4NucleiModel.cc: Pass name to G4CascadeCheckBalance. 724 725 - G4Fissioner.cc: Use G4CascadeCheckBalance to test energy conservation. 726 727 - G4InuclNuclei.hh: Add model ID as optional ctor argument. 728 729 - G4InuclCollider.cc: Move balance checks on evaporators outside verbosity. 730 Adjust name of G4CascadeCheckBalance for clear reporting. 731 732 - G4VCascadeCollider.hh: Add protected function to change name dynamically. 733 734 6 July 2010 Dennis Wright (hadr-casc-V09-03-55) 735 ----------------------------------------------- 736 - G4IntraNucleiCascader.cc: add to final particle list those cascade 737 particles which were formerly abandoned at cascade termination; 738 - G4IntraNucleiCascader.cc: allow meson excitons to pass out of nucleus 739 since they are not proper excitons, and would be lost otherwise 740 741 4 July 2010 Dennis Wright (hadr-casc-V09-03-54) 742 ----------------------------------------------- 743 - tag changes up to now 744 745 2 July 2010 Michael Kelsey 746 -------------------------- 747 - G4BigBanger.cc: Moving "generateMomentumModules()" inside loop. For 748 three-body decays, the angles are not ajustable (so always fails). 749 750 - G4CascadeInterface.cc: Set verbosity on G4CollisionOutput. 751 752 - G4EquilibriumEvaporator.cc: Simplify if-cascades to reduce nesting (test 753 for errors and exit up front, rather than in else-blocks). 754 755 - G4InuclCollider.cc: Set verbosity on G4CollisionOutput. 756 757 - G4IntraNucleiCascader.cc: Throw away casacde which leaves "negative energy 758 recoil" (i.e. rest-frame energy of recoil less than mass of nucleus or 759 nucleon). 760 761 1 July 2010 Michael Kelsey 762 -------------------------- 763 - G4InuclCollider.cc: Used wrong input target for conservation-law checking 764 subsequent to G4EquilibriumEvaporator. 765 766 - G4EquilibriumEvaporator.cc, G4NonEquilibriumEvaporator.cc: Handle 767 excitation energy differently with new G4InuclNuclei interface. Compute 768 updated values correctly, by taking nuclear mass difference then 769 subtracting energy of evaporated particle. 770 771 - G4InuclNuclei: Reorganization to properly incorporate excited states. 772 Excitation energy included in mass in all cases. setExcitationEnergy() now 773 replaces G4PartDefn pointer with new excited state. getNucleiMass() takes 774 (optional) excitation, calls G4NucleiProperties to get mass value. For 775 weird fragments, multiple isomers allowed, assigned unique non-standard 776 PDG codes. Include particle name in printout (now in .cc file). 777 778 - G4CollisionOutput.cc: Do not include nuclear excitation energy in output 779 sum; now included with nuclear mass automatically (and properly). 780 781 - G4CascadeCheckBalance.cc: Do not include nucler excitation energy in input 782 sum; now inluded with nuclear mass automatically (and properly). 783 784 - G4IntraNucleiCascader.cc: For recoil nuclear fragments, treat excitation 785 energy properly: compute as difference between recoil "mass" (recoil-frame 786 energy) and ground-state A/Z mass, and pass into G4InuclNuclei ctor. 787 After the cascade, add some recoil energy checks to deal with both 788 floating-point round-off, and quasi-elastic scatters (which change the 789 bullet direction, and leave the nucleus with "missing" energy). 790 791 - G4BigBanger.cc: Simplify boost to "target" nucleus, using "boostVector" 792 instead of G4LorentzConvertor machinery. 793 794 30 June 2010 Michael Kelsey 795 --------------------------- 796 - G4BigBanger.cc: Improve handling of excitation energy as part of nuclear 797 mass, deal with two-body explosion properly (x=0.5, not random). Some 798 tweaks to diagnostic messages. 799 800 - G4CascadeCheckBalance: Add excitation energy to total energy for bullet 801 and target nuclei. This is done in G4CollisionOutput for secondaries. It 802 is NOT relativistically correct (should add to mass, not energy), but is 803 consistent. 804 805 - G4CollisionOutput.cc: Use "getExitationEnergyInGeV()" instead of "0.001*". 806 807 - G4IntraNucleiCascader.cc: More diagnostic messages, improve the afin/zfin 808 sanity check by requiring A>=Z. 809 810 28 June 2010 Michael Kelsey 811 --------------------------- 812 - G4CascadeCheckBalance: Report violations on G4cerr always, regardless 813 of verbosity level. Add collide(...,<vector>) interface to allow use 814 from within G4ElementaryParticleCollider. 815 816 - G4ElementaryParticleCollider.cc: Add conservation checks within ::collide(). 817 818 - G4IntraNucleiCascader.cc: Add more diagnostic messages. Test for 819 negative values of afin, zfin, and try again. Set round-off limit (1e-6), 820 and test nuclear recoil energy for bound (setting to zero) before doing 821 energy-violation test. 822 823 - G4InuclNuclei.cc: Abort job if passed negative Z or A argument. 824 825 28 June 2010 Michael Kelsey 826 --------------------------- 827 - G4BigBanger.cc: Missed one instance of GetBindingEnergy(). 828 829 26 June 2010 Dennis Wright 830 -------------------------- 831 - G4InuclNuclei: Fix bug in calculation of PDG code. 832 833 25 June 2010 Michael Kelsey (hadr-casc-V09-03-53) 834 ------------------------------------------------- 835 - G4ElementaryParticleCollider.cc: MAJOR BUG FIX: Three different places 836 in generating N-body momenta had incorrect "recoil" calculations. The 837 Nth four-vector was computed as simply -total, which produced negative 838 energy states (obviously). The correct calculation should have been 839 N = G4LV(0,0,0,etot) - (total) in each instance. 840 841 24 June 2010 Michael Kelsey (hadr-casc-V09-03-52) 842 ------------------------------------------------- 843 - G4CascadeCheckBalance.cc: Bug fixes to limit checks; should be using 844 std::abs(), or negative violations don't get caught! Also did some 845 cleanup for compiler warnings see on Linux. 846 847 23 June 2010 Michael Kelsey 848 --------------------------- 849 - G4CascadeInterface.cc: Fix infinite-loop bug with energy-violation; must 850 check for (nTries>maxTries) outside parenthetical, with balance.okay() 851 inside. Do conservation checks all the time, not just with flag set. If 852 e-violation is "infinite loop", dump last generated event and abort job. 853 854 - G4CascadeCheckBalance: Add checks on baryon number, charge, and kinetic 855 energy. "Global" sanity check (::okay() function) does not include K.E. 856 857 23 June 2010 Michael Kelsey (hadr-casc-V09-03-51) 858 ------------------------------------------------- 859 - bindingEnergy.cc: Replace entire function with call-through to 860 G4NucleiProperties. Copy test for valid A/Z from there, and return 861 0. directly on failure; suppresses warning message in 9.4-beta. 862 863 - G4EquilibriumEvaporator.cc, G4Fissioner.cc, G4IntraNucleiCascader.cc 864 G4InuclNuclei.cc, G4NonEquilibriumEvaporator.cc, G4NucleiModel.cc 865 G4VCascadeCollider.cc: Restore calls to local "bindingEnergy()" to 866 get wrapper function above; suppresses warning messages in 9.4-beta. 867 868 - G4NucleiModel.cc: Make class re-usable (had been assumed in -47 tag, but 869 was not true!), by clearing all parameter vectors in generateModel(). 870 Values of A,Z are tested first, and previous data kept if same nucleus is 871 being modelled. 872 873 23 June 2010 Michael Kelsey 874 --------------------------- 875 - G4CascadeInterface.cc: Minor fix to rationalize version jumpings. 876 - G4NucleiModel.cc: Fix bug in partners list termination mods below, and 877 remove reflection-recoil from boundaryTransition(). 878 879 880 21 June 2010 Michael Kelsey (MHK-20100621) 881 ------------------------------------------ 882 - G4CascadeInterface.cc: Bring MHK-20100620 version back to HEAD, make same 883 parenthesis fix for GCC 4.5 compilation. 884 885 - G4IntraNucleiCascader.cc: Bug fix nuclear recoil kinematics introduced in 886 MHK-20100620. 887 888 - G4NucleiModel.cc: Bring MHK-20100620 version back to HEAD, apply ctor 889 argument fix. Eliminate creating temporaries for terminal "partners" on 890 list; default ctor will take care of it. Hide negative path-length report 891 behind verbose flag, and don't return an empty list. 892 893 Add block of code in ::boundaryTransition() which recoils the nucleus when 894 the secondary is reflected off the potential, to balance the momentum 895 transfer. This is implemented by computing the boost for the full nucleus 896 using the computed three-momentum transfer, and applying that boost to the 897 secondary. 898 899 23 June 2010 Michael Kelsey (hadr-casc-V09-03-50) 900 ------------------------------------------------- 901 - G4IntraNucleiCascader.cc: Restore G4NucleiModel as local data member. 902 Not well designed for reuse. 903 904 21 June 2010 Michael Kelsey (hadr-casc-V09-03-49) 905 ------------------------------------------------- 906 NOTE: Changes below were version jumped into V09-03-48. Tag above ONLY 907 includes these two changes! 908 909 - G4CascadeInterface.cc: Add parentheses in main iteration loop to support 910 mixed && and || (reported by gcc-4.5). 911 912 - G4NucleiModel.cc: Fix mistake in passing ctor args to generateModel(). 913 914 20 June 2010 Michael Kelsey (MHK-20100620) 915 ------------------------------------------ 916 - G4CascadeCheckBalance: New utility class to do energy and momentum 917 conservation testing. Implemented as a "collider" to resue interface. 918 919 - G4CascadeInterface.cc: Use new G4CascadeCheckBalance for energy 920 conservation. 921 922 - G4CollisionOutput: Add setVerboseLevel() function, diagnostic reports in 923 ::setOnShell(), and collapse if-cascades to use "if (!xxx) return" instead 924 of multiple nestings. 925 926 - G4ElementaryParticleCollider.cc: Collapse if-cascade to use "if (!xxx) 927 return" instead of multiple nestings. 928 929 - G4IntraNucleiCascader.cc: Improve diagnostic messages, change some G4cout 930 to G4cerr. 931 932 - G4InuclCollider: Make output buffers data members to reduce churn; 933 simplify if-cascades to use "if (!xxx) return" instead of nesting; add 934 energy-conservation checks at each stage of cascade. 935 936 - G4NucleiModel.cc: Improve diagnostics, collapse if-cascades to use "if 937 (!xxx) return" instead of multiple nestings. 938 939 18 June 2010 Michael Kelsey (hadr-casc-V09-03-48) 940 ------------------------------------------------- 941 - G4CascadeInterface.cc: Add check on energy conservation between initial 942 and final states; more than 5% imbalance triggers repeat generation of 943 cascade. This check may be disabled with flag G4CASCADE_SKIP_ECONS. Also 944 did some minor cleanup of the code. 945 946 - cascade/GNUmakefile: Add support for new flag above. 947 948 17 June 2010 Michael Kelsey (hadr-casc-V09-03-47) 949 ------------------------------------------------- 950 - G4CascadeInterface, G4PreCompoundCascadeInterface: Make G4InuclCollider a 951 local data member, pass verbosity to it in ::ApplyYourself(). 952 953 - G4InuclCollider, G4ElementaryParticleCollider, G4IntraNucleiCascader, 954 G4EquilibriumEvaporator, G4BigBanger: Make all sub-colliders local data 955 members, pass verbosity to each of them. 956 957 - G4NucleiModel: Add ctors and generateModel() signatures so both can do 958 particle or A/Z initialization. Add setVerboseLevel() function. 959 960 17 June 2010 Michael Kelsey (hadr-casc-V09-03-46) 961 ------------------------------------------------- 962 - cascade/GNUmakefile: Add series of "ifneq (,...)" blocks to map 963 environment variables for debugging onto "-D..." compiler flags: 964 965 G4CASCADE_COULOMB_DEV 966 G4CASCADE_DEBUG_CHARGE 967 G4CASCADE_DEBUG_INTERFACE 968 G4CASCADE_DEBUG_SORT 969 G4CASCADE_WATCHER_HIGHZ 970 971 - G4CascadeInterface.cc: Replace preprocessor flags "debug_G4...Interface" 972 with G4CASCADE_DEBUG_INTERFACE, and "BERTDEV" with G4CASCADE_COULOMB_DEV. 973 Fix bug with information access in debugging block. 974 975 - G4EquilibriumEvaporator.cc, G4IntraNucleiCascader.cc, 976 G4NonEquilibriumEvaporator.cc: Eliminate preprocessor flag RUN and all 977 code contained in "#else" blocks. 978 979 - G4LorentzConverter.cc: Add diagnostic output with different levels: All 980 " >>>" entry messages done for verboseLevel >= 1; all numeric reports for 981 verboseLevel > 2. 982 983 - G4NucleiModel: Replace preprocessor flag "CHC_CHECK" with 984 G4CASCADE_DEBUG_CHARGE. 985 986 - G4PreCompoundCascadeInterface.cc: Replace preprocessor flag 987 "debug_G4...Interface" with G4CASCADE_DEBUG_INTERFACE. Fix bug with 988 information access in debugging block. 989 990 - G4WatcherGun.cc: Replace preprocessor flag "PB" with G4CASCADE_WATCHER_HIGHZ. 991 992 16 June 2010 Michael Kelsey 993 --------------------------- 994 - G4CascadeInterface.hh: Add setVerboseLevel() function. 995 996 - G4IntraNucleiCascader.cc: Add reporting of momentum content for residual 997 nuclear fragment, list of final-state particles, some cleanup of momentum 998 balancing code. 999 1000 - G4LorentzConvertor: Add reporting of bullet and target four-vectors. 1001 1002 - G4NucleiModel.cc: Add diagnostic output for partner-list generation, 1003 replace one random-angle code block with generateWithRandomAngles(). 1004 1005 15 June 2010 Michael Kelsey (hadr-casc-V09-03-45) 1006 ------------------------------------------------- 1007 - G4CascadeInterface.cc, G4PreCompoundCascadeInterface.cc: When converting 1008 output particles from K0/K0bar to K0S/K0L, convert kinetic energy from 1009 Bertini internal units (GeV) to GEANT4 units (MeV). 1010 1011 - G4VCascadeCollider: Make two separate ctors, name and name+verbose, with 1012 no default values. All subclasses *must* provide a literal name string. 1013 1014 12 June 2010 Michael Kelsey (hadr-casc-V09-03-44) 1015 ------------------------------------------------- 1016 - G4CascadeT33piNChannel.cc: Swapped 8-body final state tables for pipP 1017 vs. pimN. 1018 1019 11 June 2010 Michael Kelsey (hadr-casc-V09-03-43) 1020 ------------------------------------------------- 20 1021 - G4CascadeData.hh: Equally trivial fix for compiler warking on Intel ICC 21 1022 for index[] array bounds in ::initialize(). Dimension array as [9], and
Note: See TracChangeset
for help on using the changeset viewer.