87 PrintWelcomeMessage();
99 handlerDefinedInternally =
true;
144 PrintWelcomeMessage();
146 theExcitationHandler = aExcitationHandler;
147 handlerDefinedInternally =
false;
171 if (handlerDefinedInternally)
delete theExcitationHandler;
175 delete thePhotonSpectrum;
187 theParticleChange.
Clear();
210 if (verboseLevel >= 2)
213 G4cout <<
"########################################"
214 <<
"########################################"
217 G4cout <<
"Initial projectile A=" <<AP
220 G4cout <<
"Initial target A=" <<AT
223 G4cout <<
"Projectile momentum and Energy/nuc = " <<pP <<
" ," <<E <<
G4endl;
242 G4double bmin = thePhotonSpectrum->GetClosestApproach(AP, ZP, AT, ZT, b);
244 GetCrossSectionForProjectile(AP, ZP, AT, ZT, b, bmin);
246 GetCrossSectionForTarget(AP, ZP, AT, ZT, b, bmin);
248 G4double totCrossSectionP = (*crossSectionP)[0]+(*crossSectionP)[1];
249 G4double totCrossSectionT = (*crossSectionT)[0]+(*crossSectionT)[1];
256 totCrossSectionP / (totCrossSectionP + totCrossSectionT))
268 GetWilsonProbabilityForProtonDissociation (AP, ZP))
270 if (verboseLevel >= 2)
271 G4cout <<
"Projectile underwent EM dissociation producing a proton"
279 if (verboseLevel >= 2)
280 G4cout <<
"Projectile underwent EM dissociation producing a neutron"
288 Eg = crossSectionP->GetLowEdgeEnergy(0);
289 if (verboseLevel >= 2)
294 Eg = crossSectionP->GetLowEdgeEnergy(1);
295 if (verboseLevel >= 2)
318 GetWilsonProbabilityForProtonDissociation (AT, ZT))
320 if (verboseLevel >= 2)
321 G4cout <<
"Target underwent EM dissociation producing a proton"
329 if (verboseLevel >= 2)
330 G4cout <<
"Target underwent EM dissociation producing a neutron"
338 Eg = crossSectionT->GetLowEdgeEnergy(0);
339 if (verboseLevel >= 2)
344 Eg = crossSectionT->GetLowEdgeEnergy(1);
345 if (verboseLevel >= 2)
357 (const_cast<G4ParticleDefinition*>(definitionP), v, E*AP-Eg);
358 theParticleChange.AddSecondary (changedP);
359 if (verboseLevel >= 2)
376 G4double pp = (e+mass1+mass2)*(e+mass1-mass2)*
377 (e-mass1+mass2)*(e-mass1-mass2)/(4.0*e*
e);
394 G4double sintheta = std::sqrt((1.0 - costheta)*(1.0 + costheta));
396 G4ThreeVector direction(sintheta*std::cos(phi),sintheta*std::sin(phi),costheta);
408 theParticleChange.AddSecondary (dynamicNucleon);
409 if (verboseLevel >= 2)
418 if (verboseLevel >= 2)
420 G4cout <<
"Dynamic properties of the prefragment:" <<
G4endl;
423 G4cout <<
"Nuclear properties of the prefragment:" <<
G4endl;
427 theExcitationHandler->BreakItUp(*theFragment);
431 G4ReactionProductVector::iterator iter;
432 for (iter = products->begin(); iter != products->end(); ++iter)
436 (*iter)->GetTotalEnergy(), (*iter)->GetMomentum());
437 theParticleChange.AddSecondary (secondary);
440 if (verboseLevel >= 2)
441 G4cout <<
"########################################"
442 <<
"########################################"
445 return &theParticleChange;
449 void G4EMDissociation::PrintWelcomeMessage ()
452 G4cout <<
" ****************************************************************"
454 G4cout <<
" EM dissociation model for nuclear-nuclear interactions activated"
456 G4cout <<
" (Written by QinetiQ Ltd for the European Space Agency)"
458 G4cout <<
" ****************************************************************"