172 theParticleChange.
Clear();
192 if (verboseLevel >= 2) {
194 G4cout <<
"########################################"
195 <<
"########################################"
198 G4cout <<
"Initial projectile A=" <<AP
201 G4cout <<
"Initial target A=" <<AT
204 G4cout <<
"Projectile momentum and Energy/nuc = " <<pP <<
" ," <<E <<
G4endl;
221 G4double bmin = thePhotonSpectrum->GetClosestApproach(AP, ZP, AT, ZT, b);
223 GetCrossSectionForProjectile(AP, ZP, AT, ZT, b, bmin);
225 GetCrossSectionForTarget(AP, ZP, AT, ZT, b, bmin);
227 G4double totCrossSectionP = (*crossSectionP)[0]+(*crossSectionP)[1];
228 G4double totCrossSectionT = (*crossSectionT)[0]+(*crossSectionT)[1];
234 totCrossSectionP / (totCrossSectionP + totCrossSectionT)) {
244 GetWilsonProbabilityForProtonDissociation (AP, ZP))
246 if (verboseLevel >= 2)
247 G4cout <<
"Projectile underwent EM dissociation producing a proton"
255 if (verboseLevel >= 2)
256 G4cout <<
"Projectile underwent EM dissociation producing a neutron"
264 Eg = crossSectionP->GetLowEdgeEnergy(0);
265 if (verboseLevel >= 2)
270 Eg = crossSectionP->GetLowEdgeEnergy(1);
271 if (verboseLevel >= 2)
280 boost = pP.findBoostToCM();
291 GetWilsonProbabilityForProtonDissociation (AT, ZT))
293 if (verboseLevel >= 2)
294 G4cout <<
"Target underwent EM dissociation producing a proton"
302 if (verboseLevel >= 2)
303 G4cout <<
"Target underwent EM dissociation producing a neutron"
311 Eg = crossSectionT->GetLowEdgeEnergy(0);
312 if (verboseLevel >= 2)
317 Eg = crossSectionT->GetLowEdgeEnergy(1);
318 if (verboseLevel >= 2)
329 theParticleChange.AddSecondary (changedP);
330 if (verboseLevel >= 2)
346 G4double pp = (e+mass1+mass2)*(e+mass1-mass2)*
347 (e-mass1+mass2)*(e-mass1-mass2)/(4.0*e*e);
363 G4double sintheta = std::sqrt((1.0 - costheta)*(1.0 + costheta));
365 G4ThreeVector direction(sintheta*std::cos(phi),sintheta*std::sin(phi),costheta);
376 theParticleChange.AddSecondary (dynamicNucleon);
377 if (verboseLevel >= 2) {
386 if (verboseLevel >= 2) {
387 G4cout <<
"Dynamic properties of the prefragment:" <<
G4endl;
390 G4cout <<
"Nuclear properties of the prefragment:" <<
G4endl;
395 theExcitationHandler->BreakItUp(*theFragment);
400 G4ReactionProductVector::iterator iter;
401 for (iter = products->begin(); iter != products->end(); ++iter) {
403 (*iter)->GetTotalEnergy(), (*iter)->GetMomentum());
404 theParticleChange.AddSecondary (secondary);
408 delete crossSectionP;
409 delete crossSectionT;
411 if (verboseLevel >= 2)
412 G4cout <<
"########################################"
413 <<
"########################################"
416 return &theParticleChange;
423 G4cout <<
" ****************************************************************"
425 G4cout <<
" EM dissociation model for nuclear-nuclear interactions activated"
427 G4cout <<
" (Written by QinetiQ Ltd for the European Space Agency)"
429 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