Import Geant4 10.3.0.beta source tree
This commit is contained in:
@@ -14,6 +14,36 @@ code and to keep track of all tags.
|
||||
* Please list in reverse chronological order (last date on top)
|
||||
---------------------------------------------------------------
|
||||
|
||||
23-Apr-2016 V.Ivanchenko hadr-pre-V10-02-06
|
||||
- G4PreCompoundFragment - fixed problem of the previous tag
|
||||
|
||||
22-Apr-2016 V.Ivanchenko hadr-pre-V10-02-05
|
||||
- G4GNASHTransitions - fixed problem in computation of probability
|
||||
- G4PreCompoundFragment, G4PreCompoundFragmentVector,
|
||||
G4PreCompoundIon, G4PreCompoundModel, G4PreCompoundNucleon,
|
||||
G4PreCompoundTransitions, G4VPreCompoundEmissionFactory,
|
||||
G4VPreCompoundFragment - use nullptr, all internal cost are static
|
||||
|
||||
19-Apr-2016 V.Ivanchenko hadr-pre-V10-02-04
|
||||
19-Apr-2016 V.Ivanchenko hadr-pre-V10-02-02
|
||||
-------------------------------------------------
|
||||
- G4GNASHTransitions, G4PreCompoundModel, G4VPreCompoundFragment,
|
||||
G4HETCFragment, G4PreCompoundIon, G4HETCChargedFragment,
|
||||
G4PreCompoundEmission, G4PreCompoundTransitions - migration from
|
||||
G4PreCompoundParameters to G4DeexPrecoParameters
|
||||
- G4PreCompoundParameters - removed
|
||||
|
||||
21-Mar-2016 V.Ivanchenko hadr-pre-V10-02-01
|
||||
-------------------------------------------------
|
||||
- Fixed division by zero due to the previous tag
|
||||
|
||||
21-Mar-2016 V.Ivanchenko hadr-pre-V10-02-00
|
||||
-------------------------------------------------
|
||||
- G4PreCompoundModel, G4PreCompoundParameters - changed non-equilibrium
|
||||
condition to switch to the de-excitation - instead check (Z<9 || A<17)
|
||||
check A<=5 || excitation<=A*Elimit (default Elimit = 0.1MeV);
|
||||
This allows to perform pre-equilibrium emission for light nuclei.
|
||||
|
||||
10-Nov-2015 V.Ivanchenko hadr-pre-V10-01-06
|
||||
-------------------------------------------------
|
||||
- G4PreCompoundFragment - an attempt to fix icc compillation problem
|
||||
|
||||
+8
-10
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4GNASHTransitions.hh 68028 2013-03-13 13:48:15Z gcosmo $
|
||||
// $Id: G4GNASHTransitions.hh 96527 2016-04-20 08:51:00Z gcosmo $
|
||||
//
|
||||
#ifndef G4GNASHTransitions_hh
|
||||
#define G4GNASHTransitions_hh 1
|
||||
@@ -31,13 +31,13 @@
|
||||
#include "G4VPreCompoundTransitions.hh"
|
||||
#include "G4Fragment.hh"
|
||||
|
||||
class G4PreCompoundParameters;
|
||||
class G4DeexPrecoParameters;
|
||||
|
||||
class G4GNASHTransitions : public G4VPreCompoundTransitions
|
||||
{
|
||||
public:
|
||||
|
||||
G4GNASHTransitions();
|
||||
explicit G4GNASHTransitions();
|
||||
|
||||
virtual ~G4GNASHTransitions();
|
||||
|
||||
@@ -47,14 +47,12 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
G4GNASHTransitions(const G4GNASHTransitions &);
|
||||
const G4GNASHTransitions& operator=(const G4GNASHTransitions &right);
|
||||
G4GNASHTransitions(const G4GNASHTransitions &) = delete;
|
||||
const G4GNASHTransitions& operator=(const G4GNASHTransitions &right) = delete;
|
||||
G4bool operator==(const G4GNASHTransitions &right) const = delete;
|
||||
G4bool operator!=(const G4GNASHTransitions &right) const = delete;
|
||||
|
||||
G4bool operator==(const G4GNASHTransitions &right) const;
|
||||
|
||||
G4bool operator!=(const G4GNASHTransitions &right) const;
|
||||
|
||||
G4PreCompoundParameters* theParameters;
|
||||
G4DeexPrecoParameters* theParameters;
|
||||
|
||||
};
|
||||
|
||||
|
||||
+10
-8
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PreCompoundFragment.hh 90337 2015-05-26 08:34:27Z gcosmo $
|
||||
// $Id: G4PreCompoundFragment.hh 96603 2016-04-25 13:29:51Z gcosmo $
|
||||
//
|
||||
// J. M. Quesada (August 2008).
|
||||
// Based on previous work by V. Lara
|
||||
@@ -41,6 +41,8 @@
|
||||
|
||||
#include "G4VPreCompoundFragment.hh"
|
||||
|
||||
const G4int NPOINTSGL = 10;
|
||||
|
||||
class G4PreCompoundFragment : public G4VPreCompoundFragment
|
||||
{
|
||||
public:
|
||||
@@ -80,20 +82,20 @@ private:
|
||||
|
||||
G4double GetOpt0(G4double ekin) const;
|
||||
|
||||
// default constructor
|
||||
G4PreCompoundFragment();
|
||||
// operators
|
||||
G4PreCompoundFragment(const G4PreCompoundFragment &right);
|
||||
G4PreCompoundFragment(const G4PreCompoundFragment &right) = delete;
|
||||
const G4PreCompoundFragment&
|
||||
operator= (const G4PreCompoundFragment &right);
|
||||
G4int operator==(const G4PreCompoundFragment &right) const;
|
||||
G4int operator!=(const G4PreCompoundFragment &right) const;
|
||||
operator= (const G4PreCompoundFragment &right) = delete;
|
||||
G4int operator==(const G4PreCompoundFragment &right) const = delete;
|
||||
G4int operator!=(const G4PreCompoundFragment &right) const = delete;
|
||||
|
||||
G4int index;
|
||||
|
||||
G4double muu;
|
||||
G4double probability[12];
|
||||
G4double probmax;
|
||||
|
||||
static const G4double ws[NPOINTSGL];
|
||||
static const G4double xs[NPOINTSGL];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+23
-23
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PreCompoundModel.hh 80062 2014-03-31 13:41:30Z gcosmo $
|
||||
// $Id: G4PreCompoundModel.hh 96527 2016-04-20 08:51:00Z gcosmo $
|
||||
//
|
||||
// by V. Lara
|
||||
//
|
||||
@@ -56,7 +56,6 @@
|
||||
#include "G4ReactionProduct.hh"
|
||||
#include "G4ExcitationHandler.hh"
|
||||
|
||||
class G4PreCompoundParameters;
|
||||
class G4PreCompoundEmission;
|
||||
class G4VPreCompoundTransitions;
|
||||
class G4ParticleDefinition;
|
||||
@@ -65,17 +64,23 @@ class G4PreCompoundModel : public G4VPreCompoundModel
|
||||
{
|
||||
public:
|
||||
|
||||
G4PreCompoundModel(G4ExcitationHandler* ptr = 0);
|
||||
explicit G4PreCompoundModel(G4ExcitationHandler* ptr = nullptr);
|
||||
|
||||
virtual ~G4PreCompoundModel();
|
||||
|
||||
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile & thePrimary,
|
||||
G4Nucleus & theNucleus);
|
||||
G4Nucleus & theNucleus) final;
|
||||
|
||||
virtual G4ReactionProductVector* DeExcite(G4Fragment& aFragment);
|
||||
virtual G4ReactionProductVector* DeExcite(G4Fragment& aFragment) final;
|
||||
|
||||
virtual void BuildPhysicsTable(const G4ParticleDefinition&) final;
|
||||
|
||||
virtual void InitialiseModel() final;
|
||||
|
||||
virtual void ModelDescription(std::ostream& outFile) const;
|
||||
virtual void DeExciteModelDescription(std::ostream& outFile) const;
|
||||
virtual void ModelDescription(std::ostream& outFile) const final;
|
||||
virtual void DeExciteModelDescription(std::ostream& outFile) const final;
|
||||
|
||||
//====== obsolete Set methods =======
|
||||
void UseHETCEmission();
|
||||
void UseDefaultEmission();
|
||||
void UseGNASHTransition();
|
||||
@@ -89,6 +94,7 @@ public:
|
||||
void UseNGB();
|
||||
void UseSCO();
|
||||
void UseCEMtr();
|
||||
//======================================
|
||||
|
||||
private:
|
||||
|
||||
@@ -96,11 +102,12 @@ private:
|
||||
void PerformEquilibriumEmission(const G4Fragment & aFragment,
|
||||
G4ReactionProductVector * theResult) const;
|
||||
|
||||
// G4PreCompoundModel();
|
||||
G4PreCompoundModel(const G4PreCompoundModel &);
|
||||
const G4PreCompoundModel& operator=(const G4PreCompoundModel &right);
|
||||
G4bool operator==(const G4PreCompoundModel &right) const;
|
||||
G4bool operator!=(const G4PreCompoundModel &right) const;
|
||||
void PrintWarning(const G4String& mname);
|
||||
|
||||
G4PreCompoundModel(const G4PreCompoundModel &) = delete;
|
||||
const G4PreCompoundModel& operator=(const G4PreCompoundModel &right) = delete;
|
||||
G4bool operator==(const G4PreCompoundModel &right) const = delete;
|
||||
G4bool operator!=(const G4PreCompoundModel &right) const = delete;
|
||||
|
||||
//==============
|
||||
// Data Members
|
||||
@@ -113,21 +120,14 @@ private:
|
||||
const G4ParticleDefinition* neutron;
|
||||
|
||||
G4double fLevelDensity;
|
||||
|
||||
G4bool useHETCEmission;
|
||||
G4bool useGNASHTransition;
|
||||
|
||||
//for cross section options
|
||||
G4int OPTxs;
|
||||
G4double fLimitEnergy;
|
||||
|
||||
//for the rest of external choices
|
||||
G4bool useSICB;
|
||||
G4bool useNGB;
|
||||
G4bool useSCO;
|
||||
G4bool useCEMtr;
|
||||
G4bool isInitialised;
|
||||
|
||||
G4int maxZ;
|
||||
G4int maxA;
|
||||
G4int minZ;
|
||||
G4int minA;
|
||||
|
||||
G4HadFinalState theResult;
|
||||
|
||||
|
||||
-91
@@ -1,91 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PreCompoundParameters.hh 68028 2013-03-13 13:48:15Z gcosmo $
|
||||
//
|
||||
// by V. Lara
|
||||
//
|
||||
// 01.04.2008 J. M. Quesada Level density set to A/10 at preequilibrium
|
||||
// 18.08.2010 V.Ivanchenko make this class as a standard singleton
|
||||
//
|
||||
|
||||
#ifndef G4PreCompoundParameters_h
|
||||
#define G4PreCompoundParameters_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
class G4PreCompoundParameters
|
||||
{
|
||||
public:
|
||||
|
||||
G4PreCompoundParameters();
|
||||
|
||||
~G4PreCompoundParameters();
|
||||
|
||||
inline G4double GetLevelDensity();
|
||||
|
||||
inline G4double Getr0();
|
||||
|
||||
inline G4double GetTransitionsr0();
|
||||
|
||||
inline G4double GetFermiEnergy();
|
||||
|
||||
private:
|
||||
|
||||
|
||||
// Level density parameter
|
||||
G4double fLevelDensity;
|
||||
|
||||
// Nuclear radius r0
|
||||
G4double fR0;
|
||||
|
||||
// Nuclear radius r0 for transitions
|
||||
G4double fTransitions_r0;
|
||||
|
||||
// Fermi energy level
|
||||
G4double fFermiEnergy;
|
||||
};
|
||||
|
||||
inline G4double G4PreCompoundParameters::GetLevelDensity()
|
||||
{
|
||||
return fLevelDensity;
|
||||
}
|
||||
|
||||
inline G4double G4PreCompoundParameters::Getr0()
|
||||
{
|
||||
return fR0;
|
||||
}
|
||||
|
||||
inline G4double G4PreCompoundParameters::GetTransitionsr0()
|
||||
{
|
||||
return fTransitions_r0;
|
||||
}
|
||||
|
||||
inline G4double G4PreCompoundParameters::GetFermiEnergy()
|
||||
{
|
||||
return fFermiEnergy;
|
||||
}
|
||||
|
||||
#endif
|
||||
+9
-18
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VPreCompoundFragment.hh 90337 2015-05-26 08:34:27Z gcosmo $
|
||||
// $Id: G4VPreCompoundFragment.hh 96527 2016-04-20 08:51:00Z gcosmo $
|
||||
//
|
||||
// J. M. Quesada (August 2008).
|
||||
// Based on previous work by V. Lara
|
||||
@@ -48,26 +48,18 @@
|
||||
#include "G4Fragment.hh"
|
||||
#include "G4VCoulombBarrier.hh"
|
||||
#include "G4ReactionProduct.hh"
|
||||
#include "G4PreCompoundParameters.hh"
|
||||
#include "G4DeexPrecoParameters.hh"
|
||||
#include "G4Pow.hh"
|
||||
|
||||
class G4VPreCompoundFragment
|
||||
{
|
||||
public:
|
||||
|
||||
// ============================
|
||||
// Constructors and destructor
|
||||
// ============================
|
||||
|
||||
G4VPreCompoundFragment(const G4ParticleDefinition*,
|
||||
G4VCoulombBarrier * aCoulombBarrier);
|
||||
explicit G4VPreCompoundFragment(const G4ParticleDefinition*,
|
||||
G4VCoulombBarrier * aCoulombBarrier);
|
||||
|
||||
virtual ~G4VPreCompoundFragment();
|
||||
|
||||
// ==========
|
||||
// operators
|
||||
// ==========
|
||||
|
||||
friend std::ostream&
|
||||
operator<<(std::ostream&, const G4VPreCompoundFragment*);
|
||||
friend std::ostream&
|
||||
@@ -129,12 +121,11 @@ protected:
|
||||
|
||||
private:
|
||||
|
||||
G4VPreCompoundFragment();
|
||||
G4VPreCompoundFragment(const G4VPreCompoundFragment &right);
|
||||
G4VPreCompoundFragment(const G4VPreCompoundFragment &right) = delete;
|
||||
const G4VPreCompoundFragment&
|
||||
operator= (const G4VPreCompoundFragment &right);
|
||||
G4int operator==(const G4VPreCompoundFragment &right) const;
|
||||
G4int operator!=(const G4VPreCompoundFragment &right) const;
|
||||
operator= (const G4VPreCompoundFragment &right) = delete;
|
||||
G4int operator==(const G4VPreCompoundFragment &right) const = delete;
|
||||
G4int operator!=(const G4VPreCompoundFragment &right) const = delete;
|
||||
|
||||
// =============
|
||||
// Data members
|
||||
@@ -147,7 +138,7 @@ private:
|
||||
|
||||
protected:
|
||||
|
||||
G4PreCompoundParameters* theParameters;
|
||||
G4DeexPrecoParameters* theParameters;
|
||||
G4Pow* g4pow;
|
||||
|
||||
G4int theA;
|
||||
|
||||
+1
-3
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VPreCompoundFragment.icc 90337 2015-05-26 08:34:27Z gcosmo $
|
||||
// $Id: G4VPreCompoundFragment.icc 96527 2016-04-20 08:51:00Z gcosmo $
|
||||
//
|
||||
// by V. Lara
|
||||
//
|
||||
@@ -110,13 +110,11 @@ void G4VPreCompoundFragment::SetMomentum(const G4LorentzVector & value)
|
||||
theMomentum = value;
|
||||
}
|
||||
|
||||
//for inverse cross section choice
|
||||
inline void G4VPreCompoundFragment::SetOPTxs(G4int opt)
|
||||
{
|
||||
OPTxs=opt;
|
||||
}
|
||||
|
||||
//for superimposed Coulomb Barrier for inverse cross sections
|
||||
inline void G4VPreCompoundFragment::UseSICB(G4bool use)
|
||||
{
|
||||
useSICB=use;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#
|
||||
# Generated on : 24/9/2010
|
||||
#
|
||||
# $Id: sources.cmake 66892 2013-01-17 10:57:59Z gunter $
|
||||
# $Id: sources.cmake 96527 2016-04-20 08:51:00Z gcosmo $
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@@ -79,7 +79,6 @@ GEANT4_DEFINE_MODULE(NAME G4had_preequ_exciton
|
||||
G4PreCompoundModel.hh
|
||||
G4PreCompoundNeutron.hh
|
||||
G4PreCompoundNucleon.hh
|
||||
G4PreCompoundParameters.hh
|
||||
G4PreCompoundProton.hh
|
||||
G4PreCompoundTransitions.hh
|
||||
G4PreCompoundTriton.hh
|
||||
@@ -110,7 +109,6 @@ GEANT4_DEFINE_MODULE(NAME G4had_preequ_exciton
|
||||
G4PreCompoundModel.cc
|
||||
G4PreCompoundNeutron.cc
|
||||
G4PreCompoundNucleon.cc
|
||||
G4PreCompoundParameters.cc
|
||||
G4PreCompoundProton.cc
|
||||
G4PreCompoundTransitions.cc
|
||||
G4PreCompoundTriton.cc
|
||||
|
||||
+14
-16
@@ -23,31 +23,30 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4GNASHTransitions.cc 92145 2015-08-19 14:26:07Z gcosmo $
|
||||
// $Id: G4GNASHTransitions.cc 96603 2016-04-25 13:29:51Z gcosmo $
|
||||
//
|
||||
// 20.08.2010 V.Ivanchenko move constructor and destructor to the source
|
||||
|
||||
#include "G4GNASHTransitions.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4PreCompoundParameters.hh"
|
||||
#include "G4NuclearLevelData.hh"
|
||||
#include "G4DeexPrecoParameters.hh"
|
||||
#include "G4HadronicException.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
G4GNASHTransitions::G4GNASHTransitions()
|
||||
{
|
||||
theParameters = new G4PreCompoundParameters();
|
||||
theParameters = G4NuclearLevelData::GetInstance()->GetParameters();
|
||||
}
|
||||
|
||||
G4GNASHTransitions::~G4GNASHTransitions()
|
||||
{
|
||||
delete theParameters;
|
||||
}
|
||||
{}
|
||||
|
||||
G4double G4GNASHTransitions::
|
||||
CalculateProbability(const G4Fragment & aFragment)
|
||||
{
|
||||
static const G4double k = 135.0 * MeV*MeV*MeV;
|
||||
static const G4double k = 135.0 *CLHEP::MeV*CLHEP::MeV*CLHEP::MeV;
|
||||
G4double E = aFragment.GetExcitationEnergy();
|
||||
G4double P = aFragment.GetNumberOfParticles();
|
||||
G4double H = aFragment.GetNumberOfHoles();
|
||||
@@ -55,20 +54,19 @@ CalculateProbability(const G4Fragment & aFragment)
|
||||
G4double A = aFragment.GetA_asInt();
|
||||
|
||||
G4double theMatrixElement(k*N/(A*A*A*E));
|
||||
G4double x = E/N;
|
||||
if ( x < 2.0*MeV ) theMatrixElement *= x/std::sqrt(14.0*MeV*MeV);
|
||||
else if ( x < 7.0*MeV ) x *= std::sqrt(x/7.0*MeV);
|
||||
else if ( x < 15.0*MeV ) ;
|
||||
else x *= std::sqrt(15.0*MeV/x);
|
||||
G4double x = E/(N*CLHEP::MeV);
|
||||
static const G4double xf = std::sqrt(2.0/7.0);
|
||||
if ( x < 2.0) { x *= xf; }
|
||||
else if ( x < 7.0) { x *= std::sqrt(x/7.0); }
|
||||
else if ( x > 15.0){ x *= std::sqrt(15.0/x); }
|
||||
theMatrixElement *= x;
|
||||
|
||||
// gg = (6.0/pi2)*a*A
|
||||
G4double gg = (6.0/pi2)*theParameters->GetLevelDensity()*A;
|
||||
|
||||
G4double Epauli = ((P+1.0)*(P+1.0) + (H+1.0)*(H+1.0) + (P+1.0) - 3.0*(H-1.0))/4.0;
|
||||
G4double Epauli = ((P+1.0)*(P+1.0) + (H+1.0)*(H+1.0) + (P+1.0) - 3.0*(H-1.0))*0.25;
|
||||
|
||||
G4double Probability = gg*gg*gg *(E-Epauli)*(E-Epauli);
|
||||
Probability /= 2.0*(N+1.0)*h_Planck;
|
||||
Probability *= theMatrixElement;
|
||||
Probability *= theMatrixElement/(2.0*(N+1.0)*CLHEP::h_Planck);
|
||||
|
||||
return Probability;
|
||||
}
|
||||
|
||||
+1
-2
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HETCChargedFragment.cc 90337 2015-05-26 08:34:27Z gcosmo $
|
||||
// $Id: G4HETCChargedFragment.cc 96527 2016-04-20 08:51:00Z gcosmo $
|
||||
//
|
||||
// by V. Lara
|
||||
//
|
||||
@@ -35,7 +35,6 @@
|
||||
#include "G4HETCChargedFragment.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4VCoulombBarrier.hh"
|
||||
#include "G4PreCompoundParameters.hh"
|
||||
|
||||
G4HETCChargedFragment::G4HETCChargedFragment(
|
||||
const G4ParticleDefinition* pd, G4VCoulombBarrier * aCoulombBarrier)
|
||||
|
||||
+2
-3
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HETCFragment.cc 91837 2015-08-07 07:27:08Z gcosmo $
|
||||
// $Id: G4HETCFragment.cc 96527 2016-04-20 08:51:00Z gcosmo $
|
||||
//
|
||||
// by V. Lara
|
||||
//
|
||||
@@ -33,14 +33,13 @@
|
||||
|
||||
#include "G4HETCFragment.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4PreCompoundParameters.hh"
|
||||
|
||||
G4HETCFragment::
|
||||
G4HETCFragment(const G4ParticleDefinition* part,
|
||||
G4VCoulombBarrier* aCoulombBarrier)
|
||||
: G4VPreCompoundFragment(part, aCoulombBarrier)
|
||||
{
|
||||
G4double r0 = theParameters->Getr0();
|
||||
G4double r0 = theParameters->GetR0();
|
||||
r2norm = r0*r0/(CLHEP::pi*CLHEP::hbarc*CLHEP::hbarc*CLHEP::hbarc);
|
||||
}
|
||||
|
||||
|
||||
+7
-5
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PreCompoundEmission.cc 90337 2015-05-26 08:34:27Z gcosmo $
|
||||
// $Id: G4PreCompoundEmission.cc 96527 2016-04-20 08:51:00Z gcosmo $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -49,10 +49,11 @@
|
||||
#include "G4Exp.hh"
|
||||
#include "G4Log.hh"
|
||||
#include "Randomize.hh"
|
||||
#include "G4PreCompoundParameters.hh"
|
||||
#include "G4PreCompoundEmissionFactory.hh"
|
||||
#include "G4HETCEmissionFactory.hh"
|
||||
#include "G4HadronicException.hh"
|
||||
#include "G4NuclearLevelData.hh"
|
||||
#include "G4DeexPrecoParameters.hh"
|
||||
|
||||
G4PreCompoundEmission::G4PreCompoundEmission()
|
||||
{
|
||||
@@ -60,9 +61,10 @@ G4PreCompoundEmission::G4PreCompoundEmission()
|
||||
theFragmentsVector =
|
||||
new G4PreCompoundFragmentVector(theFragmentsFactory->GetFragmentVector());
|
||||
g4pow = G4Pow::GetInstance();
|
||||
G4PreCompoundParameters param;
|
||||
fLevelDensity = param.GetLevelDensity();
|
||||
fFermiEnergy = param.GetFermiEnergy();
|
||||
G4DeexPrecoParameters* param =
|
||||
G4NuclearLevelData::GetInstance()->GetParameters() ;
|
||||
fLevelDensity = param->GetLevelDensity();
|
||||
fFermiEnergy = param->GetFermiEnergy();
|
||||
}
|
||||
|
||||
G4PreCompoundEmission::~G4PreCompoundEmission()
|
||||
|
||||
+11
-17
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PreCompoundFragment.cc 94281 2015-11-10 15:00:15Z gcosmo $
|
||||
// $Id: G4PreCompoundFragment.cc 96603 2016-04-25 13:29:51Z gcosmo $
|
||||
//
|
||||
// J. M. Quesada (August 2008).
|
||||
// Based on previous work by V. Lara
|
||||
@@ -39,9 +39,8 @@
|
||||
#include "G4ChatterjeeCrossSection.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
const G4int NPOINTSGL = 10;
|
||||
// 10-Points Gauss-Legendre abcisas and weights
|
||||
const G4double w[NPOINTSGL] = {
|
||||
const G4double G4PreCompoundFragment::ws[] = {
|
||||
0.0666713443086881,
|
||||
0.149451349150581,
|
||||
0.219086362515982,
|
||||
@@ -53,7 +52,7 @@ const G4double w[NPOINTSGL] = {
|
||||
0.149451349150581,
|
||||
0.0666713443086881
|
||||
};
|
||||
const G4double x[NPOINTSGL] = {
|
||||
const G4double G4PreCompoundFragment::xs[] = {
|
||||
-0.973906528517172,
|
||||
-0.865063366688985,
|
||||
-0.679409568299024,
|
||||
@@ -66,16 +65,14 @@ const G4double x[NPOINTSGL] = {
|
||||
0.973906528517172
|
||||
};
|
||||
|
||||
G4PreCompoundFragment::
|
||||
G4PreCompoundFragment(const G4ParticleDefinition* part,
|
||||
G4VCoulombBarrier* aCoulombBarrier)
|
||||
: G4VPreCompoundFragment(part,aCoulombBarrier)
|
||||
G4PreCompoundFragment::G4PreCompoundFragment(const G4ParticleDefinition* p,
|
||||
G4VCoulombBarrier* aCoulBarrier)
|
||||
: G4VPreCompoundFragment(p, aCoulBarrier)
|
||||
{
|
||||
muu = probmax = 0.0;
|
||||
index = 0;
|
||||
if(1 == theZ) { index = theA; }
|
||||
else { index = theA + 1; }
|
||||
for(G4int i=0; i<12; ++i) { probability[i] = 0.0; }
|
||||
}
|
||||
|
||||
G4PreCompoundFragment::~G4PreCompoundFragment()
|
||||
@@ -88,8 +85,7 @@ CalcEmissionProbability(const G4Fragment & aFragment)
|
||||
// If theCoulombBarrier effect is included in the emission probabilities
|
||||
// Coulomb barrier is the lower limit of integration over kinetic energy
|
||||
|
||||
G4double LowerLimit = 0.0;
|
||||
if(OPTxs==0 || useSICB) { LowerLimit = theCoulombBarrier; }
|
||||
G4double LowerLimit = theCoulombBarrier;
|
||||
|
||||
if (theMaxKinEnergy <= LowerLimit)
|
||||
{
|
||||
@@ -130,11 +126,10 @@ IntegrateEmissionProbability(G4double low, G4double up,
|
||||
probmax = 0.0;
|
||||
|
||||
for (G4int i=0; i<NPOINTSGL; ++i) {
|
||||
e = del*x[i] + avr;
|
||||
e = del*xs[i] + avr;
|
||||
y = ProbabilityDistributionFunction(e, aFragment);
|
||||
probability[i] = y;
|
||||
probmax = std::max(probmax, y);
|
||||
sum += w[i]*y;
|
||||
sum += ws[i]*y;
|
||||
}
|
||||
return sum*del;
|
||||
}
|
||||
@@ -159,7 +154,7 @@ G4double G4PreCompoundFragment::CrossSection(G4double ekin) const
|
||||
// *********************** OPT=0 : Dostrovski's cross section ***************
|
||||
G4double G4PreCompoundFragment::GetOpt0(G4double ekin) const
|
||||
{
|
||||
G4double r0 = theParameters->Getr0()*theResA13;
|
||||
G4double r0 = theParameters->GetR0()*theResA13;
|
||||
// cross section is now given in mb (r0 is in mm) for the sake of consistency
|
||||
//with the rest of the options
|
||||
return 1.e+25*CLHEP::pi*r0*r0*theResA13*GetAlpha()*(1.+GetBeta()/ekin);
|
||||
@@ -168,8 +163,7 @@ G4double G4PreCompoundFragment::GetOpt0(G4double ekin) const
|
||||
G4double G4PreCompoundFragment::SampleKineticEnergy(const G4Fragment& fragment)
|
||||
{
|
||||
//let's keep this way for consistency with CalcEmissionProbability method
|
||||
G4double limit = 0.0;
|
||||
if(useSICB) { limit = theCoulombBarrier; }
|
||||
G4double limit = theCoulombBarrier;
|
||||
|
||||
if(theMaxKinEnergy <= limit) { return 0.0; }
|
||||
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PreCompoundFragmentVector.cc 68028 2013-03-13 13:48:15Z gcosmo $
|
||||
// $Id: G4PreCompoundFragmentVector.cc 96603 2016-04-25 13:29:51Z gcosmo $
|
||||
//
|
||||
// Hadronic Process: Nuclear Preequilibrium
|
||||
// by V. Lara
|
||||
@@ -36,7 +36,7 @@
|
||||
#include "G4PreCompoundFragmentVector.hh"
|
||||
|
||||
G4PreCompoundFragmentVector::G4PreCompoundFragmentVector(pcfvector * avector)
|
||||
: theChannels(0), nChannels(0)
|
||||
: theChannels(nullptr), nChannels(0)
|
||||
{
|
||||
SetVector(avector);
|
||||
}
|
||||
|
||||
+3
-4
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PreCompoundIon.cc 90337 2015-05-26 08:34:27Z gcosmo $
|
||||
// $Id: G4PreCompoundIon.cc 96603 2016-04-25 13:29:51Z gcosmo $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -43,14 +43,12 @@
|
||||
#include "G4PreCompoundIon.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
|
||||
const G4double sixoverpi2 = 6.0/CLHEP::pi2;
|
||||
|
||||
G4PreCompoundIon::
|
||||
G4PreCompoundIon(const G4ParticleDefinition* part,
|
||||
G4VCoulombBarrier* aCoulombBarrier)
|
||||
: G4PreCompoundFragment(part,aCoulombBarrier)
|
||||
{
|
||||
G4double r0 = theParameters->Getr0();
|
||||
G4double r0 = theParameters->GetR0();
|
||||
fact = 0.75*CLHEP::millibarn/(CLHEP::pi*r0*r0*r0);
|
||||
}
|
||||
|
||||
@@ -70,6 +68,7 @@ ProbabilityDistributionFunction(G4double eKin,
|
||||
G4int A = GetA();
|
||||
G4int N = P + H;
|
||||
|
||||
static const G4double sixoverpi2 = 6.0/CLHEP::pi2;
|
||||
G4double g0 = sixoverpi2*theFragA*theParameters->GetLevelDensity();
|
||||
G4double g1 = sixoverpi2*theResA*theParameters->GetLevelDensity();
|
||||
|
||||
|
||||
+104
-73
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PreCompoundModel.cc 91837 2015-08-07 07:27:08Z gcosmo $
|
||||
// $Id: G4PreCompoundModel.cc 96603 2016-04-25 13:29:51Z gcosmo $
|
||||
//
|
||||
// by V. Lara
|
||||
//
|
||||
@@ -57,7 +57,8 @@
|
||||
#include "G4Neutron.hh"
|
||||
|
||||
#include "G4NucleiProperties.hh"
|
||||
#include "G4PreCompoundParameters.hh"
|
||||
#include "G4NuclearLevelData.hh"
|
||||
#include "G4DeexPrecoParameters.hh"
|
||||
#include "Randomize.hh"
|
||||
#include "G4DynamicParticle.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
@@ -68,29 +69,15 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
G4PreCompoundModel::G4PreCompoundModel(G4ExcitationHandler* ptr)
|
||||
: G4VPreCompoundModel(ptr,"PRECO"), useHETCEmission(false),
|
||||
useGNASHTransition(false), OPTxs(3), useSICB(false),
|
||||
useNGB(false), useSCO(false), useCEMtr(true), maxZ(3), maxA(5)
|
||||
: G4VPreCompoundModel(ptr,"PRECO"),theEmission(nullptr),theTransition(nullptr),
|
||||
useSCO(false),isInitialised(false),minZ(3),minA(5)
|
||||
{
|
||||
//G4cout << "### NEW PrecompoundModel " << this << G4endl;
|
||||
if(!ptr) { SetExcitationHandler(new G4ExcitationHandler()); }
|
||||
G4PreCompoundParameters param;
|
||||
|
||||
// 12/pi2 factor is used in real computation
|
||||
fLevelDensity = param.GetLevelDensity()*12.0/CLHEP::pi2;
|
||||
|
||||
theEmission = new G4PreCompoundEmission();
|
||||
if(useHETCEmission) { theEmission->SetHETCModel(); }
|
||||
else { theEmission->SetDefaultModel(); }
|
||||
theEmission->SetOPTxs(OPTxs);
|
||||
theEmission->UseSICB(useSICB);
|
||||
|
||||
if(useGNASHTransition) { theTransition = new G4GNASHTransitions; }
|
||||
else { theTransition = new G4PreCompoundTransitions(); }
|
||||
theTransition->UseNGB(useNGB);
|
||||
theTransition->UseCEMtr(useCEMtr);
|
||||
|
||||
proton = G4Proton::Proton();
|
||||
neutron = G4Neutron::Neutron();
|
||||
fLevelDensity = fLimitEnergy = 0.0;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -104,6 +91,47 @@ G4PreCompoundModel::~G4PreCompoundModel()
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void G4PreCompoundModel::BuildPhysicsTable(const G4ParticleDefinition&)
|
||||
{
|
||||
InitialiseModel();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void G4PreCompoundModel::InitialiseModel()
|
||||
{
|
||||
if(isInitialised) { return; }
|
||||
isInitialised = true;
|
||||
|
||||
//G4cout << "G4PreCompoundModel::InitialiseModel() started" << G4endl;
|
||||
|
||||
G4DeexPrecoParameters* param =
|
||||
G4NuclearLevelData::GetInstance()->GetParameters();
|
||||
|
||||
// 12/pi2 factor is used in real computation
|
||||
fLevelDensity = param->GetLevelDensity()*12.0/CLHEP::pi2;
|
||||
fLimitEnergy = param->GetPrecoLowEnergy();
|
||||
|
||||
useSCO = param->UseSoftCutoff();
|
||||
|
||||
minZ = param->GetMinZForPreco();
|
||||
minA = param->GetMinAForPreco();
|
||||
|
||||
theEmission = new G4PreCompoundEmission();
|
||||
if(param->UseHETC()) { theEmission->SetHETCModel(); }
|
||||
else { theEmission->SetDefaultModel(); }
|
||||
theEmission->SetOPTxs(param->GetPrecoModelType());
|
||||
|
||||
if(param->UseGNASH()) { theTransition = new G4GNASHTransitions; }
|
||||
else { theTransition = new G4PreCompoundTransitions(); }
|
||||
theTransition->UseNGB(param->NeverGoBack());
|
||||
theTransition->UseCEMtr(param->UseCEM());
|
||||
|
||||
GetExcitationHandler()->Initialise();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
G4HadFinalState*
|
||||
G4PreCompoundModel::ApplyYourself(const G4HadProjectile & thePrimary,
|
||||
G4Nucleus & theNucleus)
|
||||
@@ -165,6 +193,8 @@ G4PreCompoundModel::ApplyYourself(const G4HadProjectile & thePrimary,
|
||||
|
||||
G4ReactionProductVector* G4PreCompoundModel::DeExcite(G4Fragment& aFragment)
|
||||
{
|
||||
if(!isInitialised) { InitialiseModel(); }
|
||||
|
||||
G4ReactionProductVector * Result = new G4ReactionProductVector;
|
||||
G4double Eex = aFragment.GetExcitationEnergy();
|
||||
G4int Z = aFragment.GetZ_asInt();
|
||||
@@ -174,14 +204,14 @@ G4ReactionProductVector* G4PreCompoundModel::DeExcite(G4Fragment& aFragment)
|
||||
//G4cout << aFragment << G4endl;
|
||||
|
||||
// Perform Equilibrium Emission
|
||||
if ((Z < maxZ && A < maxA) || Eex < MeV /*|| Eex > 3.*MeV*A*/) {
|
||||
if ((Z < minZ && A < minA) || Eex < fLimitEnergy*A) {
|
||||
PerformEquilibriumEmission(aFragment, Result);
|
||||
return Result;
|
||||
}
|
||||
|
||||
// main loop
|
||||
G4int count = 0;
|
||||
const G4int countmax = 1000;
|
||||
static const G4int countmax = 1000;
|
||||
for (;;) {
|
||||
//G4cout << "### PreCompound loop over fragment" << G4endl;
|
||||
//G4cout << aFragment << G4endl;
|
||||
@@ -235,7 +265,8 @@ G4ReactionProductVector* G4PreCompoundModel::DeExcite(G4Fragment& aFragment)
|
||||
//V.Ivanchenko (May 2011) added check on number of nucleons
|
||||
// to send a fragment to FermiBreakUp
|
||||
if(!go_ahead || P1 <= P2+P3 ||
|
||||
(aFragment.GetZ_asInt() < maxZ && aFragment.GetA_asInt() < maxA) )
|
||||
aFragment.GetZ_asInt() < minZ || aFragment.GetA_asInt() < minA ||
|
||||
(aFragment.GetExcitationEnergy() <= fLimitEnergy*aFragment.GetA_asInt()))
|
||||
{
|
||||
//G4cout<<"#4 EquilibriumEmission"<<G4endl;
|
||||
PerformEquilibriumEmission(aFragment,Result);
|
||||
@@ -302,58 +333,58 @@ G4ReactionProductVector* G4PreCompoundModel::DeExcite(G4Fragment& aFragment)
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void G4PreCompoundModel::UseHETCEmission()
|
||||
{
|
||||
useHETCEmission = true;
|
||||
theEmission->SetHETCModel();
|
||||
{
|
||||
PrintWarning("UseHETCEmission");
|
||||
}
|
||||
|
||||
void G4PreCompoundModel::UseDefaultEmission()
|
||||
{
|
||||
useHETCEmission = false;
|
||||
theEmission->SetDefaultModel();
|
||||
PrintWarning("UseDefaultEmission");
|
||||
}
|
||||
|
||||
void G4PreCompoundModel::UseGNASHTransition() {
|
||||
useGNASHTransition = true;
|
||||
delete theTransition;
|
||||
theTransition = new G4GNASHTransitions;
|
||||
theTransition->UseNGB(useNGB);
|
||||
theTransition->UseCEMtr(useCEMtr);
|
||||
}
|
||||
|
||||
void G4PreCompoundModel::UseDefaultTransition() {
|
||||
useGNASHTransition = false;
|
||||
delete theTransition;
|
||||
theTransition = new G4PreCompoundTransitions();
|
||||
theTransition->UseNGB(useNGB);
|
||||
theTransition->UseCEMtr(useCEMtr);
|
||||
}
|
||||
|
||||
void G4PreCompoundModel::SetOPTxs(G4int opt)
|
||||
void G4PreCompoundModel::UseGNASHTransition()
|
||||
{
|
||||
OPTxs = opt;
|
||||
theEmission->SetOPTxs(OPTxs);
|
||||
PrintWarning("UseGNASHTransition");
|
||||
}
|
||||
|
||||
void G4PreCompoundModel::UseDefaultTransition()
|
||||
{
|
||||
PrintWarning("UseDefaultTransition");
|
||||
}
|
||||
|
||||
void G4PreCompoundModel::SetOPTxs(G4int)
|
||||
{
|
||||
PrintWarning("UseOPTxs");
|
||||
}
|
||||
|
||||
void G4PreCompoundModel::UseSICB()
|
||||
{
|
||||
useSICB = true;
|
||||
theEmission->UseSICB(useSICB);
|
||||
PrintWarning("UseSICB");
|
||||
}
|
||||
|
||||
void G4PreCompoundModel::UseNGB()
|
||||
{
|
||||
useNGB = true;
|
||||
PrintWarning("UseNGB");
|
||||
}
|
||||
|
||||
void G4PreCompoundModel::UseSCO()
|
||||
{
|
||||
useSCO = true;
|
||||
PrintWarning("UseSCO");
|
||||
}
|
||||
|
||||
void G4PreCompoundModel::UseCEMtr()
|
||||
{
|
||||
useCEMtr = true;
|
||||
PrintWarning("UseCEMtr");
|
||||
}
|
||||
|
||||
void G4PreCompoundModel::PrintWarning(const G4String& mname)
|
||||
{
|
||||
G4ExceptionDescription ed;
|
||||
ed << "Obsolete method of the preCompound model is called: "
|
||||
<< mname << "() \n Instead a corresponding method of "
|
||||
<< "G4DeexPrecoParameters class should be used";
|
||||
|
||||
G4Exception("G4PreCompoundModel::ReadData()","had0803",JustWarning,ed);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -362,31 +393,31 @@ void G4PreCompoundModel::UseCEMtr()
|
||||
|
||||
void G4PreCompoundModel::ModelDescription(std::ostream& outFile) const
|
||||
{
|
||||
outFile << "The GEANT4 precompound model is considered as an extension of the\n"
|
||||
<< "hadron kinetic model. It gives a possibility to extend the low energy range\n"
|
||||
<< "of the hadron kinetic model for nucleon-nucleus inelastic collision and it \n"
|
||||
<< "provides a ”smooth” transition from kinetic stage of reaction described by the\n"
|
||||
<< "hadron kinetic model to the equilibrium stage of reaction described by the\n"
|
||||
<< "equilibrium deexcitation models.\n"
|
||||
<< "The initial information for calculation of pre-compound nuclear stage\n"
|
||||
<< "consists of the atomic mass number A, charge Z of residual nucleus, its\n"
|
||||
<< "four momentum P0 , excitation energy U and number of excitons n, which equals\n"
|
||||
<< "the sum of the number of particles p (from them p_Z are charged) and the number of\n"
|
||||
<< "holes h.\n"
|
||||
<< "At the preequilibrium stage of reaction, we follow the exciton model approach in ref. [1],\n"
|
||||
<< "taking into account the competition among all possible nuclear transitions\n"
|
||||
<< "with ∆n = +2, −2, 0 (which are defined by their associated transition probabilities) and\n"
|
||||
<< "the emission of neutrons, protons, deutrons, thritium and helium nuclei (also defined by\n"
|
||||
<< "their associated emission probabilities according to exciton model)\n"
|
||||
<< "\n"
|
||||
<< "[1] K.K. Gudima, S.G. Mashnik, V.D. Toneev, Nucl. Phys. A401 329 (1983)\n"
|
||||
<< "\n";
|
||||
outFile
|
||||
<< "The GEANT4 precompound model is considered as an extension of the\n"
|
||||
<< "hadron kinetic model. It gives a possibility to extend the low energy range\n"
|
||||
<< "of the hadron kinetic model for nucleon-nucleus inelastic collision and it \n"
|
||||
<< "provides a ”smooth” transition from kinetic stage of reaction described by the\n"
|
||||
<< "hadron kinetic model to the equilibrium stage of reaction described by the\n"
|
||||
<< "equilibrium deexcitation models.\n"
|
||||
<< "The initial information for calculation of pre-compound nuclear stage\n"
|
||||
<< "consists of the atomic mass number A, charge Z of residual nucleus, its\n"
|
||||
<< "four momentum P0 , excitation energy U and number of excitons n, which equals\n"
|
||||
<< "the sum of the number of particles p (from them p_Z are charged) and the number of\n"
|
||||
<< "holes h.\n"
|
||||
<< "At the preequilibrium stage of reaction, we follow the exciton model approach in ref. [1],\n"
|
||||
<< "taking into account the competition among all possible nuclear transitions\n"
|
||||
<< "with ∆n = +2, −2, 0 (which are defined by their associated transition probabilities) and\n"
|
||||
<< "the emission of neutrons, protons, deutrons, thritium and helium nuclei (also defined by\n"
|
||||
<< "their associated emission probabilities according to exciton model)\n"
|
||||
<< "\n"
|
||||
<< "[1] K.K. Gudima, S.G. Mashnik, V.D. Toneev, Nucl. Phys. A401 329 (1983)\n"
|
||||
<< "\n";
|
||||
}
|
||||
|
||||
void G4PreCompoundModel::DeExciteModelDescription(std::ostream& outFile) const
|
||||
{
|
||||
outFile << "description of precompound model as used with DeExcite()"
|
||||
<< "\n";
|
||||
outFile << "description of precompound model as used with DeExcite()" << "\n";
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
+6
-7
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PreCompoundNucleon.cc 91837 2015-08-07 07:27:08Z gcosmo $
|
||||
// $Id: G4PreCompoundNucleon.cc 96603 2016-04-25 13:29:51Z gcosmo $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -44,12 +44,8 @@
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
const G4double sixoverpi2 = 6.0/CLHEP::pi2;
|
||||
const G4double fact = 2*CLHEP::millibarn/(CLHEP::pi2*CLHEP::hbarc*CLHEP::hbarc*CLHEP::hbarc);
|
||||
|
||||
G4PreCompoundNucleon::
|
||||
G4PreCompoundNucleon(const G4ParticleDefinition* part,
|
||||
G4VCoulombBarrier* aCoulombBarrier)
|
||||
G4PreCompoundNucleon::G4PreCompoundNucleon(
|
||||
const G4ParticleDefinition* part, G4VCoulombBarrier* aCoulombBarrier)
|
||||
: G4PreCompoundFragment(part,aCoulombBarrier)
|
||||
{}
|
||||
|
||||
@@ -65,6 +61,7 @@ ProbabilityDistributionFunction(G4double eKin,
|
||||
G4int H = aFragment.GetNumberOfHoles();
|
||||
G4int N = P + H;
|
||||
|
||||
static const G4double sixoverpi2 = 6.0/CLHEP::pi2;
|
||||
G4double g0 = sixoverpi2*theFragA*theParameters->GetLevelDensity();
|
||||
G4double g1 = sixoverpi2*theResA*theParameters->GetLevelDensity();
|
||||
|
||||
@@ -88,6 +85,8 @@ ProbabilityDistributionFunction(G4double eKin,
|
||||
throw G4HadronicException(__FILE__, __LINE__, errOs.str());
|
||||
}
|
||||
|
||||
static const G4double fact = 2*CLHEP::millibarn
|
||||
/(CLHEP::pi2*CLHEP::hbarc*CLHEP::hbarc*CLHEP::hbarc);
|
||||
G4double Probability = fact * theReducedMass * rj * xs * eKin * P * (N-1)
|
||||
* g4pow->powN(g1*E1/(g0*E0),N-2) * g1 / (E0*g0*g0);
|
||||
|
||||
|
||||
-47
@@ -1,47 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PreCompoundParameters.cc 68028 2013-03-13 13:48:15Z gcosmo $
|
||||
//
|
||||
// by V. Lara
|
||||
//
|
||||
// 18.08.2010 V.Ivanchenko make this class as a standard singleton
|
||||
//
|
||||
|
||||
#include "G4PreCompoundParameters.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
G4PreCompoundParameters::G4PreCompoundParameters()
|
||||
{
|
||||
fLevelDensity = 0.10/MeV;
|
||||
fR0 = 1.5*fermi;
|
||||
fTransitions_r0 = 0.6*fermi;
|
||||
fFermiEnergy = 35.0*MeV;
|
||||
}
|
||||
|
||||
G4PreCompoundParameters::~G4PreCompoundParameters()
|
||||
{}
|
||||
|
||||
|
||||
+14
-11
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PreCompoundTransitions.cc 89523 2015-04-16 09:56:35Z gcosmo $
|
||||
// $Id: G4PreCompoundTransitions.cc 96603 2016-04-25 13:29:51Z gcosmo $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -49,21 +49,21 @@
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "Randomize.hh"
|
||||
#include "G4PreCompoundParameters.hh"
|
||||
#include "G4NuclearLevelData.hh"
|
||||
#include "G4DeexPrecoParameters.hh"
|
||||
#include "G4Fragment.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4Exp.hh"
|
||||
#include "G4Log.hh"
|
||||
|
||||
static const G4double sixdpi2 = 6.0/CLHEP::pi2;
|
||||
|
||||
G4PreCompoundTransitions::G4PreCompoundTransitions()
|
||||
{
|
||||
proton = G4Proton::Proton();
|
||||
G4PreCompoundParameters param;
|
||||
FermiEnergy = param.GetFermiEnergy();
|
||||
r0 = param.GetTransitionsr0();
|
||||
aLDP = param.GetLevelDensity();
|
||||
G4DeexPrecoParameters* param =
|
||||
G4NuclearLevelData::GetInstance()->GetParameters() ;
|
||||
FermiEnergy = param->GetFermiEnergy();
|
||||
r0 = param->GetTransitionsR0();
|
||||
aLDP = param->GetLevelDensity();
|
||||
}
|
||||
|
||||
G4PreCompoundTransitions::~G4PreCompoundTransitions()
|
||||
@@ -86,9 +86,11 @@ CalculateProbability(const G4Fragment & aFragment)
|
||||
G4double U = aFragment.GetExcitationEnergy();
|
||||
TransitionProb2 = 0.0;
|
||||
TransitionProb3 = 0.0;
|
||||
|
||||
//G4cout << aFragment << G4endl;
|
||||
|
||||
/*
|
||||
G4cout << "G4PreCompoundTransitions::CalculateProbability H/P/N/Z/A= "
|
||||
<< H << " " << P << " " << N << " " << Z << " " << A <<G4endl;
|
||||
G4cout << aFragment << G4endl;
|
||||
*/
|
||||
if(U < 10*eV || 0==N) { return 0.0; }
|
||||
|
||||
//J. M. Quesada (Feb. 08) new physics
|
||||
@@ -96,6 +98,7 @@ CalculateProbability(const G4Fragment & aFragment)
|
||||
// (original in G4PreCompound from VL)
|
||||
// OPT=2 Transitions are calculated according to Gupta's formulae
|
||||
//
|
||||
static const G4double sixdpi2 = 6.0/CLHEP::pi2;
|
||||
if (useCEMtr) {
|
||||
// Relative Energy (T_{rel})
|
||||
G4double RelativeEnergy = 1.6*FermiEnergy + U/G4double(N);
|
||||
|
||||
+3
-3
@@ -23,19 +23,19 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VPreCompoundEmissionFactory.cc 68028 2013-03-13 13:48:15Z gcosmo $
|
||||
// $Id: G4VPreCompoundEmissionFactory.cc 96603 2016-04-25 13:29:51Z gcosmo $
|
||||
//
|
||||
// by V. Lara
|
||||
|
||||
#include "G4VPreCompoundEmissionFactory.hh"
|
||||
|
||||
G4VPreCompoundEmissionFactory::G4VPreCompoundEmissionFactory()
|
||||
: fragvector(0)
|
||||
: fragvector(nullptr)
|
||||
{}
|
||||
|
||||
G4VPreCompoundEmissionFactory::~G4VPreCompoundEmissionFactory()
|
||||
{
|
||||
if (fragvector != 0)
|
||||
if (fragvector != nullptr)
|
||||
std::for_each(fragvector->begin(), fragvector->end(),
|
||||
DeleteFragment());
|
||||
delete fragvector;
|
||||
|
||||
+7
-8
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VPreCompoundFragment.cc 90337 2015-05-26 08:34:27Z gcosmo $
|
||||
// $Id: G4VPreCompoundFragment.cc 96603 2016-04-25 13:29:51Z gcosmo $
|
||||
//
|
||||
// J. M. Quesada (August 2008). Based on previous work by V. Lara
|
||||
//
|
||||
@@ -33,7 +33,8 @@
|
||||
|
||||
#include "G4VPreCompoundFragment.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4PreCompoundParameters.hh"
|
||||
#include "G4NuclearLevelData.hh"
|
||||
#include "G4DeexPrecoParameters.hh"
|
||||
#include "G4NucleiProperties.hh"
|
||||
|
||||
G4VPreCompoundFragment::G4VPreCompoundFragment(
|
||||
@@ -46,18 +47,16 @@ G4VPreCompoundFragment::G4VPreCompoundFragment(
|
||||
theMaxKinEnergy(0.0),theResMass(0.0),
|
||||
theReducedMass(0.0),
|
||||
theEmissionProbability(0.0),theCoulombBarrier(0.0),
|
||||
OPTxs(3),useSICB(false)
|
||||
OPTxs(3),useSICB(true)
|
||||
{
|
||||
theMass = particle->GetPDGMass();
|
||||
theParameters = new G4PreCompoundParameters();
|
||||
theParameters = G4NuclearLevelData::GetInstance()->GetParameters();
|
||||
g4pow = G4Pow::GetInstance();
|
||||
theResA13 = 0;
|
||||
theResA13 = 0.0;
|
||||
}
|
||||
|
||||
G4VPreCompoundFragment::~G4VPreCompoundFragment()
|
||||
{
|
||||
delete theParameters;
|
||||
}
|
||||
{}
|
||||
|
||||
std::ostream&
|
||||
operator << (std::ostream &out, const G4VPreCompoundFragment &theFragment)
|
||||
|
||||
Reference in New Issue
Block a user