78{
82 resA = fragA - theA;
83 resZ = fragZ - theZ;
84
85
86 if(resA < theA || resA < resZ || resZ < 0 || (resA == theA && resZ < theZ)
87 || ((resA > 1) && (resA == resZ || resZ == 0)))
88 { return 0.0; }
89
92
93
94
95
96
97 if(exEnergy < delta0) { return 0.0; }
98
100 mass = fragMass + exEnergy;
101
103 ekinmax = 0.5*((mass-resMass)*(mass+resMass) + evapMass2)/mass - evapMass;
104
106 if(theZ > 0) {
108
109
110 elim = (0 !=
OPTxs) ? bCoulomb*0.6 : bCoulomb;
111 }
112
113
114
115
116
117
118 if(mass <= resMass + evapMass + elim) { return 0.0; }
119
121 if(elim > 0.0) {
122 G4double resM = mass - evapMass - elim;
123 ekinmin =
124 std::max(0.5*((mass-resM)*(mass+resM) + evapMass2)/mass - evapMass, 0.0);
125 }
126
127
128
129
130
131 if(ekinmax <= ekinmin) { return 0.0; }
132
135 ekinmax, bCoulomb,
136 exEnergy - delta0);
137 return prob;
138}
virtual G4double TotalProbability(const G4Fragment &fragment, G4double minKinEnergy, G4double maxKinEnergy, G4double CB, G4double exEnergy)
G4double GetGroundStateMass() const
G4double GetExcitationEnergy() const
G4PairingCorrection * GetPairingCorrection()
void SetDecayKinematics(G4int rZ, G4int rA, G4double rmass, G4double fmass)