Import Geant4 10.5.0 source tree
This commit is contained in:
+16
-24
@@ -24,7 +24,6 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4CompetitiveFission.cc 107060 2017-11-01 15:00:04Z gcosmo $
|
||||
//
|
||||
// Hadronic Process: Nuclear De-excitations
|
||||
// by V. Lara (Oct 1998)
|
||||
@@ -54,10 +53,9 @@ G4CompetitiveFission::G4CompetitiveFission() : G4VEvaporationChannel("fission")
|
||||
theLevelDensityPtr = new G4FissionLevelDensityParameter;
|
||||
MyOwnLevelDensity = true;
|
||||
|
||||
MaximalKineticEnergy = -1000.0;
|
||||
MaximalKineticEnergy = 0.0;
|
||||
FissionBarrier = 0.0;
|
||||
FissionProbability = 0.0;
|
||||
LevelDensityParameter = 0.0;
|
||||
pairingCorrection = G4NuclearLevelData::GetInstance()->GetPairingCorrection();
|
||||
}
|
||||
|
||||
@@ -71,32 +69,28 @@ G4CompetitiveFission::~G4CompetitiveFission()
|
||||
G4double G4CompetitiveFission::GetEmissionProbability(G4Fragment* fragment)
|
||||
{
|
||||
G4int anA = fragment->GetA_asInt();
|
||||
G4int aZ = fragment->GetZ_asInt();
|
||||
G4double ExEnergy = fragment->GetExcitationEnergy() -
|
||||
pairingCorrection->GetFissionPairingCorrection(anA,aZ);
|
||||
FissionProbability = 0.0;
|
||||
if (anA >= 65) {
|
||||
G4int aZ = fragment->GetZ_asInt();
|
||||
G4double ExEnergy = fragment->GetExcitationEnergy() -
|
||||
pairingCorrection->GetFissionPairingCorrection(anA,aZ);
|
||||
|
||||
// Saddle point excitation energy ---> A = 65
|
||||
// Fission is excluded for A < 65
|
||||
if (anA >= 65 && ExEnergy > 0.0) {
|
||||
FissionBarrier = theFissionBarrierPtr->FissionBarrier(anA,aZ,ExEnergy);
|
||||
MaximalKineticEnergy = ExEnergy - FissionBarrier;
|
||||
LevelDensityParameter =
|
||||
theLevelDensityPtr->LevelDensityParameter(anA,aZ,ExEnergy);
|
||||
FissionProbability =
|
||||
theFissionProbabilityPtr->EmissionProbability(*fragment,
|
||||
MaximalKineticEnergy);
|
||||
// Saddle point excitation energy ---> A = 65
|
||||
// Fission is excluded for A < 65
|
||||
if (ExEnergy > 0.0) {
|
||||
FissionBarrier = theFissionBarrierPtr->FissionBarrier(anA,aZ,ExEnergy);
|
||||
MaximalKineticEnergy = ExEnergy - FissionBarrier;
|
||||
FissionProbability =
|
||||
theFissionProbabilityPtr->EmissionProbability(*fragment,
|
||||
MaximalKineticEnergy);
|
||||
}
|
||||
else {
|
||||
MaximalKineticEnergy = -1000.0;
|
||||
LevelDensityParameter = 0.0;
|
||||
FissionProbability = 0.0;
|
||||
}
|
||||
return FissionProbability;
|
||||
}
|
||||
|
||||
G4Fragment* G4CompetitiveFission::EmittedFragment(G4Fragment* theNucleus)
|
||||
{
|
||||
G4Fragment * Fragment1 = 0;
|
||||
G4Fragment * Fragment1 = nullptr;
|
||||
// Nucleus data
|
||||
// Atomic number of nucleus
|
||||
G4int A = theNucleus->GetA_asInt();
|
||||
@@ -166,12 +160,10 @@ G4Fragment* G4CompetitiveFission::EmittedFragment(G4Fragment* theNucleus)
|
||||
// excitation energy
|
||||
|
||||
FragmentsExcitationEnergy =
|
||||
// Tmax - FragmentsKineticEnergy;
|
||||
Tmax - FragmentsKineticEnergy + pcorr;
|
||||
|
||||
// Loop checking, 05-Aug-2015, Vladimir Ivanchenko
|
||||
} while (FragmentsExcitationEnergy < 0.0
|
||||
&& ++Trials < 100);
|
||||
} while (FragmentsExcitationEnergy < 0.0 && ++Trials < 100);
|
||||
|
||||
if (FragmentsExcitationEnergy <= 0.0) {
|
||||
throw G4HadronicException(__FILE__, __LINE__,
|
||||
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// Hadronic Process: Nuclear De-excitations
|
||||
// by V. Lara (Oct 1998)
|
||||
//
|
||||
// Modified:
|
||||
// 21.03.2013 V.Ivanchenko redesigned and comment out unused part
|
||||
|
||||
#include "G4EvaporationLevelDensityParameter.hh"
|
||||
#include "G4NuclearLevelData.hh"
|
||||
|
||||
G4EvaporationLevelDensityParameter::G4EvaporationLevelDensityParameter()
|
||||
{
|
||||
fNucData = G4NuclearLevelData::GetInstance();
|
||||
}
|
||||
|
||||
G4EvaporationLevelDensityParameter::~G4EvaporationLevelDensityParameter()
|
||||
{}
|
||||
|
||||
G4double
|
||||
G4EvaporationLevelDensityParameter::LevelDensityParameter(G4int A, G4int Z, G4double U) const
|
||||
{
|
||||
return fNucData->GetLevelDensity(Z, A, U);
|
||||
}
|
||||
|
||||
/*
|
||||
#include "G4ShellCorrections.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
// Those values are from table 3 in
|
||||
// A.S. Iljinov et al. Nucl Phys A543 (1992) 517-557
|
||||
// Table 3. alpha, beta and gamma for Cameron Shell corrections
|
||||
// whithout collective effects. f-factor = 2.31.
|
||||
|
||||
//JMQ 17-04-08 these are not used at present in G4Evaporation
|
||||
const G4double
|
||||
G4EvaporationLevelDensityParameter::ConstEvapLevelDensityParameter = 0.125/MeV;
|
||||
const G4double
|
||||
G4EvaporationLevelDensityParameter::ConstEvapLevelDensityParameter= 0.0769231/MeV;
|
||||
const G4double G4EvaporationLevelDensityParameter::alpha = 0.072/MeV;
|
||||
const G4double G4EvaporationLevelDensityParameter::beta = 0.257/MeV;
|
||||
const G4double G4EvaporationLevelDensityParameter::gamma = 0.059/MeV;
|
||||
const G4double G4EvaporationLevelDensityParameter::Bs = 1.0;
|
||||
|
||||
// Asymptotic Level Density Parameter
|
||||
//G4double AsymptoticLDP = (alpha*A + beta*g4pow-Z23(A)*Bs)/MeV;
|
||||
|
||||
// Shape of the LDP U dependence
|
||||
G4double exponent = -gamma*U;
|
||||
G4double f = 1.;
|
||||
if (exponent > -300.) f -= G4Exp(exponent);
|
||||
G4double a = AsymptoticLDP*(1. + ShellCorrection(Z,N)*f/U);
|
||||
return a;
|
||||
*/
|
||||
@@ -23,7 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FissionBarrier.cc 105799 2017-08-21 07:35:55Z gcosmo $
|
||||
//
|
||||
// Hadronic Process: Nuclear De-excitations
|
||||
// by V. Lara (Oct 1998)
|
||||
|
||||
+8
-24
@@ -24,7 +24,6 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4FissionLevelDensityParameter.cc 67983 2013-03-13 10:42:03Z gcosmo $
|
||||
//
|
||||
// Hadronic Process: Nuclear De-excitations
|
||||
// by V. Lara (Oct 1998)
|
||||
@@ -34,39 +33,24 @@
|
||||
// J.M.Quesada (30.10.09): retuning for IAEA spallation data
|
||||
|
||||
#include "G4FissionLevelDensityParameter.hh"
|
||||
#include "G4HadronicException.hh"
|
||||
|
||||
#include "G4NuclearLevelData.hh"
|
||||
|
||||
G4FissionLevelDensityParameter::G4FissionLevelDensityParameter()
|
||||
{}
|
||||
{
|
||||
fNucData = G4NuclearLevelData::GetInstance();
|
||||
}
|
||||
|
||||
G4FissionLevelDensityParameter::~G4FissionLevelDensityParameter()
|
||||
{}
|
||||
|
||||
|
||||
G4double G4FissionLevelDensityParameter::
|
||||
LevelDensityParameter(G4int A, G4int Z, G4double U) const
|
||||
{
|
||||
G4double EvapLDP =
|
||||
theEvaporationLevelDensityParameter.LevelDensityParameter(A,Z,U);
|
||||
G4double EvapLDP = fNucData->GetLevelDensity(Z, A, U);
|
||||
|
||||
if(Z >= 89) { EvapLDP *= 1.02; }
|
||||
else if(Z >= 85) { EvapLDP *= (1.02 + 0.004*(89 - Z)); }
|
||||
else { EvapLDP *= 1.04; }
|
||||
if(Z >= 89) { EvapLDP *= 1.05; }
|
||||
else if(Z <= 85) { EvapLDP *= 1.03; }
|
||||
else { EvapLDP *= (1.03 + 0.005*(Z - 85)); }
|
||||
|
||||
/*
|
||||
if(Z >= 89) { EvapLDP *= 1.01; }
|
||||
else if(Z >= 85) { EvapLDP *= (1.01 + 0.002*(89 - Z)); }
|
||||
else { EvapLDP *= 1.02; }
|
||||
*/
|
||||
return EvapLDP;
|
||||
|
||||
/*
|
||||
if(Z >= 89) EvapLDP *= 1.04;
|
||||
else if(Z >= 85) EvapLDP *= (1.04 + 0.01*(89 - Z));
|
||||
else EvapLDP *= 1.09;
|
||||
|
||||
//JMQ 310509
|
||||
return 1.07*EvapLDP;
|
||||
*/
|
||||
}
|
||||
|
||||
+6
-9
@@ -24,34 +24,31 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4FissionLevelDensityParameterINCLXX.cc 67983 2013-03-13 10:42:03Z gcosmo $
|
||||
//
|
||||
// Hadronic Process: Nuclear De-excitations
|
||||
// by D. Mancusi (6th October 2014)
|
||||
//
|
||||
|
||||
#include "G4FissionLevelDensityParameterINCLXX.hh"
|
||||
#include "G4HadronicException.hh"
|
||||
|
||||
#include "G4NuclearLevelData.hh"
|
||||
|
||||
G4FissionLevelDensityParameterINCLXX::G4FissionLevelDensityParameterINCLXX() :
|
||||
afanLow(1.02),
|
||||
afanHigh(1.02),
|
||||
afanLow(1.03),
|
||||
afanHigh(1.05),
|
||||
ZLow(84),
|
||||
ZHigh(89)
|
||||
{
|
||||
UpdateAfanSlope();
|
||||
fNucData = G4NuclearLevelData::GetInstance();
|
||||
}
|
||||
|
||||
G4FissionLevelDensityParameterINCLXX::~G4FissionLevelDensityParameterINCLXX()
|
||||
{}
|
||||
|
||||
|
||||
G4double G4FissionLevelDensityParameterINCLXX::
|
||||
LevelDensityParameter(G4int A, G4int Z, G4double U) const
|
||||
{
|
||||
G4double EvapLDP =
|
||||
theEvaporationLevelDensityParameter.LevelDensityParameter(A,Z,U);
|
||||
G4double EvapLDP = fNucData->GetLevelDensity(Z, A, U);
|
||||
|
||||
if(Z >= ZHigh) { EvapLDP *= afanHigh; }
|
||||
else if(Z <= ZLow) { EvapLDP *= afanLow; }
|
||||
@@ -63,7 +60,7 @@ LevelDensityParameter(G4int A, G4int Z, G4double U) const
|
||||
|
||||
void G4FissionLevelDensityParameterINCLXX::UpdateAfanSlope() {
|
||||
if(ZHigh!=ZLow)
|
||||
afanSlope = (afanHigh-afanLow)/((double)(ZHigh-ZLow));
|
||||
afanSlope = (afanHigh-afanLow)/((G4double)(ZHigh-ZLow));
|
||||
else
|
||||
afanSlope = 0.;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4FissionParameters.cc 89550 2015-04-17 08:38:15Z gcosmo $
|
||||
//
|
||||
// Hadronic Process: Nuclear De-excitations
|
||||
// by V. Lara (Oct 1998)
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4FissionProbability.cc 105799 2017-08-21 07:35:55Z gcosmo $
|
||||
//
|
||||
// Hadronic Process: Nuclear De-excitations
|
||||
// by V. Lara (Oct 1998)
|
||||
@@ -69,8 +68,8 @@ G4FissionProbability::EmissionProbability(const G4Fragment & fragment,
|
||||
G4double U = fragment.GetExcitationEnergy();
|
||||
|
||||
G4double Ucompound = U - fPairCorr->GetPairingCorrection(A,Z);
|
||||
|
||||
G4double Ufission = U - fPairCorr->GetFissionPairingCorrection(A,Z);
|
||||
if(Ucompound < 0.0 || Ufission < 0.0) { return 0.0; }
|
||||
|
||||
G4double SystemEntropy =
|
||||
2.0*std::sqrt(theEvapLDP->LevelDensityParameter(A,Z,Ucompound)*Ucompound);
|
||||
@@ -78,22 +77,11 @@ G4FissionProbability::EmissionProbability(const G4Fragment & fragment,
|
||||
G4double afission = theFissLDP->LevelDensityParameter(A,Z,Ufission);
|
||||
|
||||
G4double Cf = 2.0*std::sqrt(afission*MaximalKineticEnergy);
|
||||
|
||||
// G4double Q1 = 1.0 + (Cf - 1.0)*G4Exp(Cf);
|
||||
// G4double Q2 = 4.0*pi*afission*G4Exp(SystemEntropy);
|
||||
|
||||
// G4double probability = Q1/Q2;
|
||||
|
||||
G4double Exp1 = 0.0;
|
||||
if (SystemEntropy <= 160.0) { Exp1 = G4Exp(-SystemEntropy); }
|
||||
// @@@@@@@@@@@@@@@@@ hpw changed max to min - cannot notify vicente now
|
||||
G4double Exp2 = G4Exp( std::min(300.0,Cf-SystemEntropy) );
|
||||
G4double Exp1 = (SystemEntropy <= 160.0) ? G4Exp(-SystemEntropy) : 0.0;
|
||||
G4double Exp2 = (SystemEntropy-Cf <= 160.0) ? G4Exp(-SystemEntropy+Cf) : 0.0;
|
||||
|
||||
// JMQ 14/02/09 BUG fixed in fission probability (missing parenthesis
|
||||
// at denominator)
|
||||
//AH fix from Vincente: G4double probability =
|
||||
// (Exp1 + (1.0-Cf)*Exp2) / 4.0*pi*afission;
|
||||
// G4double probability = (Exp1 + (Cf-1.0)*Exp2) / 4.0*pi*afission;
|
||||
G4double probability = (Exp1 + (Cf-1.0)*Exp2) / (4.0*pi*afission);
|
||||
|
||||
return probability;
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VFissionBarrier.cc 67983 2013-03-13 10:42:03Z gcosmo $
|
||||
//
|
||||
// Hadronic Process: Nuclear De-excitations
|
||||
// by V. Lara (Oct 1998)
|
||||
|
||||
Reference in New Issue
Block a user