111 G4double muEnergy = fMuMass + muBindingEnergy;
112 G4double muMom =std::sqrt(muBindingEnergy*(muBindingEnergy + 2.0*fMuMass));
113 G4double availableEnergy = massA + fMuMass - muBindingEnergy;
123 if((1 == Z && 1 ==
A) || (2 == Z && 3 ==
A)) {
126 if(1 == Z) { pd = fNeutron; }
133 residualMass*residualMass/availableEnergy);
138 AddNewParticle(pd, nudir, availableEnergy - e - residualMass);
143 }
else if((1 == Z && 2 ==
A) || (2 == Z && 4 ==
A)) {
146 if(1 == Z) { pd = fNeutron; }
149 availableEnergy -= neutron_mass_c2 - nenergy;
156 residualMass*residualMass/availableEnergy);
161 AddNewParticle(pd, nudir, availableEnergy - e - residualMass);
165 AddNewParticle(fNeutron, nudir, nenergy);
177 const std::vector<G4Nucleon>& nucleons= fNucleus.GetNucleons();
180 G4int reentryCount = 0;
187 pDef = nucleons[index].GetDefinition();
188 }
while(pDef != fProton);
196 G4double Enu = 0.5*(Ecms - neutron_mass_c2*neutron_mass_c2/Ecms);
205 momResidual = momInitial - momNu;
206 eEx = momResidual.
mag() - residualMass;
207 if(eEx < 0.0 && eEx + nenergy >= 0.0) {
208 momResidual.
set(0.0, 0.0, 0.0, residualMass);
214 if(reentryCount > 100 && eEx < 0.0) {
217 ed <<
"Target Z= " << Z
218 <<
" A= " <<
A <<
" Eex(MeV)= " << eEx/MeV <<
G4endl;
219 ed <<
" ApplyYourself does not completed after 100 attempts -"
220 <<
" excitation energy is set to zero";
221 G4Exception(
"G4MuMinusCapturePrecompound::ApplyYourself",
"had006",
223 momResidual.
set(0.0, 0.0, 0.0, residualMass);
238 size_t n = rpv->size();
239 for(
size_t i=0; i<n; ++i) {
243 fTime = time0 + rp->
GetTOF();
251 G4cout <<
"G4MuMinusCapturePrecompound::ApplyYourself: Nsec= "
252 << result.GetNumberOfSecondaries()
253 <<
" E0(MeV)= " <<availableEnergy/MeV
254 <<
" Mres(GeV)= " <<residualMass/GeV
G4double GetPDGMass() const