153 using namespace G4InuclParticleNames;
154 using namespace G4InuclSpecialFunctions;
170 theCascadeHistory(0), tnuclei(0), bnuclei(0), bparticle(0),
171 minimum_recoil_A(0.), coulombBarrier(0.),
193 model->setVerboseLevel(verbose);
221 finalize(itry, bullet, target, globalOutput);
232 G4cout <<
" >>> G4IntraNucleiCascader::rescatter " <<
G4endl;
247 finalize(itry, bullet, target, globalOutput);
254 G4cout <<
" >>> G4IntraNucleiCascader::initialize " <<
G4endl;
271 G4cerr <<
" G4IntraNucleiCascader: projectile is not a valid particle."
280 G4cerr <<
" Target is not a nucleus. Abandoning." <<
G4endl;
293 G4cout <<
" intitial momentum E " << momentum_in.
e() <<
" Px "
294 << momentum_in.
x() <<
" Py " << momentum_in.
y() <<
" Pz "
305 G4cout <<
" IntraNucleiCascader itry " << itry <<
" inter_case "
323 G4cout <<
" >>> G4IntraNucleiCascader::setupCascade" <<
G4endl;
344 for (i = 0; i <
ab; i++) {
345 G4int knd = i < zb ? 1 : 2;
370 G4cout <<
" Iteration " << iloop <<
": Number of cparticles "
379 G4cout <<
" active cparticle got history ID "
387 G4cout <<
" particle is non-interacting; moving to output" <<
G4endl;
404 G4cout <<
" After generate fate: New particles "
406 <<
" Discarding last cparticle from list " <<
G4endl;
416 if (
model->stillInside(currentCParticle)) {
421 model->worthToPropagate(currentCParticle)) {
449 std::sqrt(mass*(coulombBarrier-KE)) );
476 std::pair<G4int, G4int> holes =
model->getTypesOfNucleonsInvolved();
478 G4cout <<
" adding new exciton holes " << holes.first <<
","
479 << holes.second <<
G4endl;
483 if (holes.second > 0)
494 <<
" nucleus (model) has "
495 <<
model->getNumberOfNeutrons() <<
" n, "
496 <<
model->getNumberOfProtons() <<
" p "
497 <<
" residual fragment A " << aresid <<
G4endl;
509 G4cout <<
" >>> G4IntraNucleiCascader::finishCascade ?" <<
G4endl;
545 G4cerr <<
" Recoil nucleus is not physical: A=" << afin <<
" Z="
553 G4cout <<
" afin " << afin <<
" zfin " << zfin <<
G4endl;
556 if (afin == 0)
return true;
559 G4int last_type = (zfin==1) ? 1 : 2;
572 G4cerr <<
" extra energy with recoil nucleon" <<
G4endl;
582 G4cout <<
" adding recoiling nucleon to output list\n"
583 << last_particle <<
G4endl;
598 G4cout <<
" quasi-elastic scatter with " << Eex <<
" MeV recoil"
615 G4cerr <<
"Got null pointer for recoil fragment!" <<
G4endl;
620 G4cout <<
" adding recoil fragment to output list" <<
G4endl;
661 G4cout <<
" IntraNucleiCascader-> no inelastic interaction after "
662 << itry <<
" attempts " <<
G4endl;
667 G4cout <<
" IntraNucleiCascader output after trials " << itry <<
G4endl;
682 if (theNucleusA > 1) {
701 G4cout <<
" >>> G4IntraNucleiCascader::preloadCascade" <<
G4endl;
709 G4cout <<
" >>> G4IntraNucleiCascader::copyWoundedNucleus" <<
G4endl;
730 <<
" protons hit" <<
G4endl;
740 G4cout <<
" >>> G4IntraNucleiCascader::copySecondaries" <<
G4endl;
742 for (
size_t i=0; i<secondaries->size(); i++) {
753 G4cout <<
" Original list of " << secondaries->size() <<
" secondaries"
777 G4cout <<
" >>> G4IntraNucleiCascader::processSecondary "
798 G4cout <<
" Created cascade particle \n" << cpart <<
G4endl;
808 G4cout <<
" >>> G4IntraNucleiCascader::releaseSecondary "
813 if (dynamic_cast<const G4Ions*>(kpd)) {
821 G4cout <<
" Created pre-cascade fragment\n" << inucl <<
G4endl;
830 G4cout <<
" Created invalid pre-cascade particle\n" << ipart <<
G4endl;
859 G4cout <<
" non-standard should be absorbed, now released\n"
872 G4cout <<
" unstable must be decayed in flight" <<
G4endl;
879 G4cerr <<
" no decay table! Releasing trapped particle" <<
G4endl;
889 G4cerr <<
" no daughters! Releasing trapped particle" <<
G4endl;
901 daughters->
Boost(decayEnergy, decayDir);