47 {
48 G4double S = nucleus->computeSeparationEnergyBalance();
49
50 const G4double Sp = nucleus->getPotential()->getSeparationEnergy(
Proton);
51 const G4double Sn = nucleus->getPotential()->getSeparationEnergy(
Neutron);
52
53 ParticleList remnantParticles = nucleus->getStore()->getParticles();
54 remnantParticles.insert(remnantParticles.end(), created.begin(), created.end());
55
58 for(
ParticleIter i = remnantParticles.begin(); i != remnantParticles.end();
59 ++i) {
60
61 if((*i)->isNucleon()) {
62 const G4double Tf = nucleus->getPotential()->getFermiEnergy(*i);
63 const G4double T = (*i)->getKineticEnergy();
64
65 if(T > Tf) {
66 const G4double sep = nucleus->getPotential()->getSeparationEnergy(*i);
67 Sk += sep;
68 } else {
69 TbelowTf += T - (*i)->getPotentialEnergy();
70 }
71 } else if((*i)->isResonance()) {
72 const G4double Tf = nucleus->getPotential()->getFermiEnergy(*i);
73 const G4double T = (*i)->getKineticEnergy();
74
75 if(T > Tf) {
76 const G4double sep = nucleus->getPotential()->getSeparationEnergy(*i);
77 Sk += sep;
78 } else {
80 }
81 }
else if((*i)->getType() ==
PiPlus)
82 Sk += Sp - Sn;
83 else if((*i)->getType() ==
PiMinus)
84 Sk += Sn - Sp;
85
86 }
87 G4double Tinitial = nucleus->getInitialInternalEnergy();
88 G4double Eblock = TbelowTf - Tinitial - Sk - S;
89
90 return (Eblock < 0.0);
91 }
static G4double getINCLMass(const G4int A, const G4int Z)
Get INCL nuclear mass (in MeV/c^2)
std::list< G4INCL::Particle * > ParticleList
std::list< G4INCL::Particle * >::const_iterator ParticleIter