Import Geant4 11.0.0 source tree
This commit is contained in:
committed by
Ben Morgan
parent
6399a014b6
commit
80e2389dd8
@@ -74,9 +74,12 @@
|
||||
#include "G4ReactionProductVector.hh"
|
||||
#include "Randomize.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4PhysicsModelCatalog.hh"
|
||||
|
||||
G4EMDissociation::G4EMDissociation():G4HadronicInteraction("EMDissociation") {
|
||||
|
||||
G4EMDissociation::G4EMDissociation() :
|
||||
G4HadronicInteraction("EMDissociation"),
|
||||
secID_projectileDissociation(-1), secID_targetDissociation(-1)
|
||||
{
|
||||
// Send message to stdout to advise that the G4EMDissociation model is being
|
||||
// used.
|
||||
PrintWelcomeMessage();
|
||||
@@ -98,9 +101,15 @@ G4EMDissociation::G4EMDissociation():G4HadronicInteraction("EMDissociation") {
|
||||
|
||||
// Set the default verbose level to 0 - no output.
|
||||
verboseLevel = 0;
|
||||
|
||||
// Creator model ID for the secondaries created by this model
|
||||
secID_projectileDissociation = G4PhysicsModelCatalog::GetModelID( "model_projectile" + GetModelName() );
|
||||
secID_targetDissociation = G4PhysicsModelCatalog::GetModelID( "model_target" + GetModelName() );
|
||||
}
|
||||
|
||||
G4EMDissociation::G4EMDissociation (G4ExcitationHandler *aExcitationHandler)
|
||||
G4EMDissociation::G4EMDissociation (G4ExcitationHandler *aExcitationHandler) :
|
||||
G4HadronicInteraction("EMDissociation"),
|
||||
secID_projectileDissociation(-1), secID_targetDissociation(-1)
|
||||
{
|
||||
// Send message to stdout to advise that the G4EMDissociation model is being
|
||||
// used.
|
||||
@@ -119,6 +128,10 @@ G4EMDissociation::G4EMDissociation (G4ExcitationHandler *aExcitationHandler)
|
||||
SetMinEnergy(100.0*MeV);
|
||||
SetMaxEnergy(500.0*GeV);
|
||||
verboseLevel = 0;
|
||||
|
||||
// Creator model ID for the secondaries created by this model
|
||||
secID_projectileDissociation = G4PhysicsModelCatalog::GetModelID( "model_projectile" + GetModelName() );
|
||||
secID_targetDissociation = G4PhysicsModelCatalog::GetModelID( "model_target" + GetModelName() );
|
||||
}
|
||||
|
||||
|
||||
@@ -197,7 +210,8 @@ G4HadFinalState *G4EMDissociation::ApplyYourself
|
||||
|
||||
// Now sample whether the interaction involved EM dissociation of the projectile
|
||||
// or the target.
|
||||
|
||||
|
||||
G4int secID = -1; // Creator model ID for the secondaries
|
||||
if (G4UniformRand() <
|
||||
totCrossSectionP / (totCrossSectionP + totCrossSectionT)) {
|
||||
|
||||
@@ -207,6 +221,7 @@ G4HadFinalState *G4EMDissociation::ApplyYourself
|
||||
// which passed from the target nucleus ... this will be used to define the
|
||||
// excitation of the projectile.
|
||||
|
||||
secID = secID_projectileDissociation;
|
||||
mass = MP;
|
||||
if (G4UniformRand() < dissociationCrossSection->
|
||||
GetWilsonProbabilityForProtonDissociation (AP, ZP))
|
||||
@@ -253,7 +268,8 @@ G4HadFinalState *G4EMDissociation::ApplyYourself
|
||||
// proton or a neutron was ejected. Then determine the energy of the virtual
|
||||
// gamma ray which passed from the projectile nucleus ... this will be used to
|
||||
// define the excitation of the target.
|
||||
|
||||
|
||||
secID = secID_targetDissociation;
|
||||
mass = MT;
|
||||
if (G4UniformRand() < dissociationCrossSection->
|
||||
GetWilsonProbabilityForProtonDissociation (AT, ZT))
|
||||
@@ -294,7 +310,7 @@ G4HadFinalState *G4EMDissociation::ApplyYourself
|
||||
G4ThreeVector v = pP.vect();
|
||||
v.setMag(1.0);
|
||||
G4DynamicParticle *changedP = new G4DynamicParticle (definitionP, v, E*AP-Eg);
|
||||
theParticleChange.AddSecondary (changedP);
|
||||
theParticleChange.AddSecondary (changedP, secID);
|
||||
if (verboseLevel >= 2)
|
||||
{
|
||||
G4cout <<"Projectile change:" <<G4endl;
|
||||
@@ -341,7 +357,7 @@ G4HadFinalState *G4EMDissociation::ApplyYourself
|
||||
// The "decay" products have to be transferred to the G4HadFinalState object.
|
||||
// Furthermore, the residual nucleus should be de-excited.
|
||||
|
||||
theParticleChange.AddSecondary (dynamicNucleon);
|
||||
theParticleChange.AddSecondary (dynamicNucleon, secID);
|
||||
if (verboseLevel >= 2) {
|
||||
G4cout <<"Nucleon from the EMD process:" <<G4endl;
|
||||
dynamicNucleon->DumpInfo();
|
||||
@@ -369,7 +385,7 @@ G4HadFinalState *G4EMDissociation::ApplyYourself
|
||||
for (iter = products->begin(); iter != products->end(); ++iter) {
|
||||
secondary = new G4DynamicParticle((*iter)->GetDefinition(),
|
||||
(*iter)->GetTotalEnergy(), (*iter)->GetMomentum());
|
||||
theParticleChange.AddSecondary (secondary);
|
||||
theParticleChange.AddSecondary (secondary, secID);
|
||||
}
|
||||
delete products;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user