173 theParticleChange.
Clear();
193 if (verboseLevel >= 2) {
195 G4cout <<
"########################################"
196 <<
"########################################"
199 G4cout <<
"Initial projectile A=" <<AP
202 G4cout <<
"Initial target A=" <<AT
205 G4cout <<
"Projectile momentum and Energy/nuc = " <<pP <<
" ," <<E <<
G4endl;
222 G4double bmin = thePhotonSpectrum->GetClosestApproach(AP, ZP, AT, ZT, b);
224 GetCrossSectionForProjectile(AP, ZP, AT, ZT, b, bmin);
226 GetCrossSectionForTarget(AP, ZP, AT, ZT, b, bmin);
228 G4double totCrossSectionP = (*crossSectionP)[0]+(*crossSectionP)[1];
229 G4double totCrossSectionT = (*crossSectionT)[0]+(*crossSectionT)[1];
235 totCrossSectionP / (totCrossSectionP + totCrossSectionT)) {
245 GetWilsonProbabilityForProtonDissociation (AP, ZP))
247 if (verboseLevel >= 2)
248 G4cout <<
"Projectile underwent EM dissociation producing a proton"
256 if (verboseLevel >= 2)
257 G4cout <<
"Projectile underwent EM dissociation producing a neutron"
265 Eg = crossSectionP->GetLowEdgeEnergy(0);
266 if (verboseLevel >= 2)
271 Eg = crossSectionP->GetLowEdgeEnergy(1);
272 if (verboseLevel >= 2)
281 boost = pP.findBoostToCM();
292 GetWilsonProbabilityForProtonDissociation (AT, ZT))
294 if (verboseLevel >= 2)
295 G4cout <<
"Target underwent EM dissociation producing a proton"
303 if (verboseLevel >= 2)
304 G4cout <<
"Target underwent EM dissociation producing a neutron"
312 Eg = crossSectionT->GetLowEdgeEnergy(0);
313 if (verboseLevel >= 2)
318 Eg = crossSectionT->GetLowEdgeEnergy(1);
319 if (verboseLevel >= 2)
330 theParticleChange.AddSecondary (changedP);
331 if (verboseLevel >= 2)
347 G4double pp = (e+mass1+mass2)*(e+mass1-mass2)*
348 (e-mass1+mass2)*(e-mass1-mass2)/(4.0*e*e);
364 G4double sintheta = std::sqrt((1.0 - costheta)*(1.0 + costheta));
366 G4ThreeVector direction(sintheta*std::cos(phi),sintheta*std::sin(phi),costheta);
377 theParticleChange.AddSecondary (dynamicNucleon);
378 if (verboseLevel >= 2) {
387 if (verboseLevel >= 2) {
388 G4cout <<
"Dynamic properties of the prefragment:" <<
G4endl;
391 G4cout <<
"Nuclear properties of the prefragment:" <<
G4endl;
396 theExcitationHandler->BreakItUp(*theFragment);
401 G4ReactionProductVector::iterator iter;
402 for (iter = products->begin(); iter != products->end(); ++iter) {
404 (*iter)->GetTotalEnergy(), (*iter)->GetMomentum());
405 theParticleChange.AddSecondary (secondary);
409 if (verboseLevel >= 2)
410 G4cout <<
"########################################"
411 <<
"########################################"
414 return &theParticleChange;
421 G4cout <<
" ****************************************************************"
423 G4cout <<
" EM dissociation model for nuclear-nuclear interactions activated"
425 G4cout <<
" (Written by QinetiQ Ltd for the European Space Agency)"
427 G4cout <<
" ****************************************************************"
G4bool handlerDefinedInternally
static G4double GetNuclearMass(const G4double A, const G4double Z)
CLHEP::Hep3Vector G4ThreeVector
static G4Proton * ProtonDefinition()
void DumpInfo(G4int mode=0) const
void SetMinEForMultiFrag(G4double anE)
void PrintWelcomeMessage()
G4ExcitationHandler * theExcitationHandler
std::vector< G4ReactionProduct * > G4ReactionProductVector
void SetMinEnergy(G4double anEnergy)
G4EMDissociationCrossSection * dissociationCrossSection
G4GLOB_DLL std::ostream G4cout
const G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
void SetFermiModel(G4VFermiBreakUp *ptr)
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &, G4Nucleus &)
G4ErrorTarget * theTarget
void SetMultiFragmentation(G4VMultiFragmentation *ptr)
const G4LorentzVector & Get4Momentum() const
G4LorentzVector Get4Momentum() const
static G4IonTable * GetIonTable()
void Set4Momentum(const G4LorentzVector &momentum)
G4double GetPDGMass() const
void SetMaxAandZForFermiBreakUp(G4int anA, G4int aZ)
G4EMDissociationSpectrum * thePhotonSpectrum
void SetEvaporation(G4VEvaporation *ptr)
void SetMaxEnergy(const G4double anEnergy)
G4double GetPDGCharge() const
static G4Neutron * NeutronDefinition()
G4int GetBaryonNumber() const
G4double GetTotalEnergy() const
CLHEP::HepLorentzVector G4LorentzVector