Import Geant4 9.6.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 17:01:34 +02:00
parent b1eb5424d2
commit e2d2f9810a
10384 changed files with 698580 additions and 628834 deletions
@@ -14,6 +14,38 @@ code and to keep track of all tags.
* Please list in reverse chronological order (last date on top)
---------------------------------------------------------------
27-September-2012 G.Cosmo hadr-pre-V09-05-06
---------------------------------------------
- Explicitly use inclusion of headers for system of units and physical
constants, in plan to remove implicit inclusion from globals.hh.
23-August-2012 V.Ivanchenko hadr-pre-V09-05-05
-----------------------------------------------
- G4PreCompoundModel - do not use factory due to dependency problem
17-August-2012 V.Ivanchenko hadr-pre-V09-05-04
-----------------------------------------------
- G4PreCompoundModel - register PRECO factory
06-July-2012 V.Ivanchenko hadr-pre-V09-05-03
-----------------------------------------------
- Fixed shadowing
27-June-2012 V.Ivanchenko hadr-pre-V09-05-02
-----------------------------------------------
- G4VPreCompoundFragment - move computation of Z13 after check of
consistency - fixed rare bug for abnormal fragments
24-April-2012 Gunter Folger hadr-pre-V09-05-01
-----------------------------------------------
G4PreCompoundModel - add Description() method, actual description
from phys. ref. manual, and improved by Jose Manuel
18-January 2012 V.Ivanchenko hadr-pre-V09-05-00
-----------------------------------------------
G4PreCompoundModel - added pointer to G4ExcitationHandler to the
constructor; added deletion of G4ExcitationHandler in the destructor
31-October 2011 V.Ivanchenko hadr-pre-V09-04-06
20-October 2011 V.Ivanchenko hadr-pre-V09-04-05
----------------------------------------------
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4GNASHTransitions.hh,v 1.4 2010-08-20 07:42:19 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
#ifndef G4GNASHTransitions_hh
#define G4GNASHTransitions_hh 1
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCAlpha.hh,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCChargedFragment.hh,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCDeuteron.hh,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCEmissionFactory.hh,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCFragment.hh,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCFragment.icc,v 1.4 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCHe3.hh,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCNeutron.hh,v 1.4 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCProton.hh,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCTriton.hh,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,13 +23,11 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4LowEIonFragmentation.hh,v 1.7 2010-10-28 17:34:33 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
//---------------------------------------------------------------------------
//
// $Id: G4LowEIonFragmentation.hh,v 1.7 2010-10-28 17:34:33 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// ClassName: G4LowEIonFragmentation
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundAlpha.hh,v 1.12 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundDeuteron.hh,v 1.13 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundEmission.hh,v 1.9 2010-09-01 14:51:21 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// Hadronic Process: Nuclear Preequilibrium
// by V. Lara
@@ -78,7 +77,8 @@ private:
const G4Fragment& aFragment,
G4double KineticEnergy);
G4double rho(G4int p, G4int h, G4double g, G4double E, G4double Ef) const;
G4double rho(G4int p, G4int h, G4double gg,
G4double E, G4double Ef) const;
G4PreCompoundEmission(const G4PreCompoundEmission &right);
const G4PreCompoundEmission& operator=(const G4PreCompoundEmission &right);
@@ -1,38 +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: G4PreCompoundEmission.icc,v 1.6 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// Author: V.Lara
//
// Modified:
// Modif (03 September 2008) by J. M. Quesada for external choice of inverse
// cross section option
// JMQ (06 September 2008) Also external choice has been added for:
// - superimposed Coulomb barrier (if useSICB=true)
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundEmissionFactory.hh,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundFragment.hh,v 1.6 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// J. M. Quesada (August 2008).
// Based on previous work by V. Lara
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundFragmentVector.hh,v 1.7 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// Hadronic Process: Nuclear Preequilibrium
// by V. Lara
@@ -24,8 +24,7 @@
// ********************************************************************
//
//
// $Id: G4PreCompoundFragmentVector.icc,v 1.5 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// Hadronic Process: Nuclear Preequilibrium
// by V. Lara
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundHe3.hh,v 1.11 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundIon.hh,v 1.8 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// J. M. Quesada (August 2008).
// Based on previous work by V. Lara
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundModel.hh,v 1.9 2010-08-20 07:41:48 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -45,6 +44,8 @@
// - CEM transition probabilities (if useCEMtr=true)
// 30.10.2009 J.M.Quesada CEM transition probabilities are set as default
// 20.08.2010 V.Ivanchenko Cleanup of the code - changed data members and inline methods
// 03.01.2012 V.Ivanchenko Added pointer to G4ExcitationHandler to the
// constructor
#ifndef G4PreCompoundModel_h
#define G4PreCompoundModel_h 1
@@ -64,7 +65,7 @@ class G4PreCompoundModel : public G4VPreCompoundModel
{
public:
G4PreCompoundModel(G4ExcitationHandler * const value);
G4PreCompoundModel(G4ExcitationHandler* ptr = 0);
virtual ~G4PreCompoundModel();
@@ -72,7 +73,9 @@ public:
G4Nucleus & theNucleus);
virtual G4ReactionProductVector* DeExcite(G4Fragment& aFragment);
virtual void ModelDescription(std::ostream& outFile) const;
void UseHETCEmission();
void UseDefaultEmission();
void UseGNASHTransition();
@@ -93,7 +96,7 @@ private:
void PerformEquilibriumEmission(const G4Fragment & aFragment,
G4ReactionProductVector * theResult) const;
G4PreCompoundModel();
// G4PreCompoundModel();
G4PreCompoundModel(const G4PreCompoundModel &);
const G4PreCompoundModel& operator=(const G4PreCompoundModel &right);
G4bool operator==(const G4PreCompoundModel &right) const;
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundNeutron.hh,v 1.13 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundNucleon.hh,v 1.7 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// J. M. Quesada (August 2008).
// Based on previous work by V. Lara
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundParameters.hh,v 1.6 2010-08-18 14:07:24 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundProton.hh,v 1.13 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundTransitions.hh,v 1.8 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
// 01.05.2008 J. M. Quesada . New methods for accessing to individual transition
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundTriton.hh,v 1.12 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4VPreCompoundEmissionFactory.hh,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4VPreCompoundFragment.hh,v 1.11 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// J. M. Quesada (August 2008).
// Based on previous work by V. Lara
@@ -24,8 +24,7 @@
// ********************************************************************
//
//
// $Id: G4VPreCompoundFragment.icc,v 1.8 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4VPreCompoundTransitions.hh,v 1.6 2010-08-20 07:42:19 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// J. M. Quesada (May 08). New virtual classes have been added Prob1,2,3
// JMQ (06 September 2008) Also external choices have been added for:
@@ -70,7 +70,6 @@ GEANT4_DEFINE_MODULE(NAME G4had_preequ_exciton
G4PreCompoundAlpha.hh
G4PreCompoundDeuteron.hh
G4PreCompoundEmission.hh
G4PreCompoundEmission.icc
G4PreCompoundEmissionFactory.hh
G4PreCompoundFragment.hh
G4PreCompoundFragmentVector.hh
@@ -23,12 +23,13 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4GNASHTransitions.cc,v 1.6 2010-08-20 07:42:19 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// 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 "G4HadronicException.hh"
@@ -55,12 +56,12 @@ CalculateProbability(const G4Fragment & aFragment)
else if ( x < 15.0*MeV ) ;
else x *= std::sqrt(15.0*MeV/x);
// g = (6.0/pi2)*a*A
G4double g = (6.0/pi2)*G4PreCompoundParameters::GetAddress()->GetLevelDensity()*A;
// gg = (6.0/pi2)*a*A
G4double gg = (6.0/pi2)*G4PreCompoundParameters::GetAddress()->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 Probability = g*g*g *(E-Epauli)*(E-Epauli);
G4double Probability = gg*gg*gg *(E-Epauli)*(E-Epauli);
Probability /= 2.0*(N+1.0)*h_Planck;
Probability *= theMatrixElement;
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCAlpha.cc,v 1.4 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCChargedFragment.cc,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -34,6 +33,7 @@
//
#include "G4HETCChargedFragment.hh"
#include "G4PhysicalConstants.hh"
#include "G4VCoulombBarrier.hh"
#include "G4PreCompoundParameters.hh"
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCDeuteron.cc,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCEmissionFactory.cc,v 1.5 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCFragment.cc,v 1.4 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -33,6 +32,7 @@
// the source, use G4Pow
#include "G4HETCFragment.hh"
#include "G4PhysicalConstants.hh"
#include "G4PreCompoundParameters.hh"
G4HETCFragment::
@@ -84,10 +84,10 @@ IntegrateEmissionProbability(const G4double & Low, const G4double & Up,
G4int Pb = P - GetA();
G4int Nb = Pb + H;
if (Nb <= 0.0) { return 0.0; }
G4double g = (6.0/pi2)*aFragment.GetA()*theParameters->GetLevelDensity();
G4double ga = (6.0/pi2)*aFragment.GetA()*theParameters->GetLevelDensity();
G4double gb = (6.0/pi2)*GetRestA()*theParameters->GetLevelDensity();
G4double A = G4double(P*P+H*H+P-3*H)/(4.0*g);
G4double A = G4double(P*P+H*H+P-3*H)/(4.0*ga);
G4double Ab = G4double(Pb*Pb+H*H+Pb-3*H)/(4.0*gb);
U = std::max(U-A,0.0);
if (U <= 0.0) { return 0.0; }
@@ -107,12 +107,12 @@ IntegrateEmissionProbability(const G4double & Low, const G4double & Up,
G4double Probability = r2norm*GetSpinFactor()*GetReducedMass()*GetAlpha()
*g4pow->Z23(GetRestA())*Pf*Hf*Nf*K(aFragment)*(X/Nb - Y/(Nb+1))
*U*g4pow->powN(g*gb,Nb)/g4pow->powN(g*U,N);
*U*g4pow->powN(gb*Y,Nb)/g4pow->powN(ga*U,N);
// G4double Probability = GetSpinFactor()/(pi*hbarc*hbarc*hbarc)
// * GetReducedMass() * GetAlpha() *
// r0 * r0 * std::pow->Z23(GetRestA())/std::pow->pow(U,G4double(N-1)) *
// (std::pow->(gb,Nb)/std::pow(g,N)) * Pf * Hf * Nf * K(aFragment) *
// (std::pow->(gb,Nb)/std::pow(ga,N)) * Pf * Hf * Nf * K(aFragment) *
// std::pow(Y,Nb) * (X/Nb - Y/(Nb+1));
return Probability;
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCHe3.cc,v 1.4 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCNeutron.cc,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -33,6 +32,8 @@
// the source, use G4Pow
#include "G4HETCNeutron.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4Neutron.hh"
G4HETCNeutron::G4HETCNeutron()
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCProton.cc,v 1.3 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HETCTriton.cc,v 1.4 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4LowEIonFragmentation.cc,v 1.8 2010-10-28 17:34:33 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
//---------------------------------------------------------------------------
//
@@ -38,11 +37,14 @@
// 28 Oct 2010 V.Ivanchenko complete migration to integer Z and A;
// use updated G4Fragment methods
#include <algorithm>
#include "G4LowEIonFragmentation.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4Fancy3DNucleus.hh"
#include "G4Proton.hh"
#include "G4NucleiProperties.hh"
#include <algorithm>
G4int G4LowEIonFragmentation::hits = 0;
G4int G4LowEIonFragmentation::totalTries = 0;
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundAlpha.cc,v 1.8 2010-11-02 11:27:27 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// -------------------------------------------------------------------
//
@@ -42,6 +41,7 @@
//
#include "G4PreCompoundAlpha.hh"
#include "G4SystemOfUnits.hh"
#include "G4Alpha.hh"
G4PreCompoundAlpha::G4PreCompoundAlpha()
@@ -149,7 +149,7 @@ G4double G4PreCompoundAlpha::GetOpt12(G4double K)
G4double p2 = 1146.;
G4double landa0 = 0.0643;
G4double landa1 = -13.96;
G4double mu0 = 781.2;
G4double mm0 = 781.2;
G4double mu1 = 0.29;
G4double nu0 = -304.7;
G4double nu1 = -470.0;
@@ -160,7 +160,7 @@ G4double G4PreCompoundAlpha::GetOpt12(G4double K)
p = p0 + p1/Ec + p2/(Ec*Ec);
landa = landa0*ResidualA + landa1;
G4double resmu1 = g4pow->powZ(ResidualA,mu1);
mu = mu0*resmu1;
mu = mm0*resmu1;
nu = resmu1*(nu0 + nu1*Ec + nu2*(Ec*Ec));
q = landa - nu/(Ec*Ec) - 2*p*Ec;
r = mu + 2*nu/Ec + p*(Ec*Ec);
@@ -190,7 +190,7 @@ G4double G4PreCompoundAlpha::GetOpt34(G4double K)
G4double p2 = 1146.;
G4double landa0 = 0.0643;
G4double landa1 = -13.96;
G4double mu0 = 781.2;
G4double mm0 = 781.2;
G4double mu1 = 0.29;
G4double nu0 = -304.7;
G4double nu1 = -470.0;
@@ -205,7 +205,7 @@ G4double G4PreCompoundAlpha::GetOpt34(G4double K)
p = p0 + p1/ec + p2/ecsq;
landa = landa0*ResidualA + landa1;
a = g4pow->powZ(ResidualA,mu1);
mu = mu0 * a;
mu = mm0 * a;
nu = a* (nu0+nu1*ec+nu2*ecsq);
xnulam = nu / landa;
if (xnulam > spill) { xnulam=0.; }
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundDeuteron.cc,v 1.9 2010-11-02 17:33:28 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// -------------------------------------------------------------------
//
@@ -42,6 +41,7 @@
//
#include "G4PreCompoundDeuteron.hh"
#include "G4SystemOfUnits.hh"
#include "G4Deuteron.hh"
G4PreCompoundDeuteron::G4PreCompoundDeuteron()
@@ -136,7 +136,7 @@ G4double G4PreCompoundDeuteron::GetOpt12(G4double K)
G4double p2 = -2804.;
G4double landa0 = -0.0323;
G4double landa1 = -5.48;
G4double mu0 = 336.1;
G4double mm0 = 336.1;
G4double mu1 = 0.48;
G4double nu0 = 524.3;
G4double nu1 = -371.8;
@@ -147,7 +147,7 @@ G4double G4PreCompoundDeuteron::GetOpt12(G4double K)
p = p0 + p1/Ec + p2/(Ec*Ec);
landa = landa0*ResidualA + landa1;
G4double resmu1 = g4pow->powZ(ResidualA,mu1);
mu = mu0*resmu1;
mu = mm0*resmu1;
nu = resmu1*(nu0 + nu1*Ec + nu2*(Ec*Ec));
q = landa - nu/(Ec*Ec) - 2*p*Ec;
r = mu + 2*nu/Ec + p*(Ec*Ec);
@@ -178,7 +178,7 @@ G4double G4PreCompoundDeuteron::GetOpt34(G4double K)
G4double p2 = -1651.;
G4double landa0 = 0.00619;
G4double landa1 = -7.54;
G4double mu0 = 583.5;
G4double mm0 = 583.5;
G4double mu1 = 0.337;
G4double nu0 = 421.8;
G4double nu1 = -474.5;
@@ -193,7 +193,7 @@ G4double G4PreCompoundDeuteron::GetOpt34(G4double K)
p = p0 + p1/ec + p2/ecsq;
landa = landa0*ResidualA + landa1;
a = g4pow->powZ(ResidualA,mu1);
mu = mu0 * a;
mu = mm0 * a;
nu = a* (nu0+nu1*ec+nu2*ecsq);
xnulam = nu / landa;
if (xnulam > spill) { xnulam=0.; }
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundEmission.cc,v 1.34 2010-11-23 17:59:47 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// -------------------------------------------------------------------
//
@@ -44,12 +43,14 @@
//
#include "G4PreCompoundEmission.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4Pow.hh"
#include "Randomize.hh"
#include "G4PreCompoundParameters.hh"
#include "G4PreCompoundEmissionFactory.hh"
#include "G4HETCEmissionFactory.hh"
#include "G4HadronicException.hh"
#include "G4Pow.hh"
#include "Randomize.hh"
G4PreCompoundEmission::G4PreCompoundEmission()
{
@@ -189,19 +190,19 @@ G4PreCompoundEmission::AngularDistribution(G4VPreCompoundFragment* thePreFragmen
//
// G4EvaporationLevelDensityParameter theLDP;
// G4double g = (6.0/pi2)*aFragment.GetA()*
// G4double gg = (6.0/pi2)*aFragment.GetA()*
G4double g = (6.0/pi2)*aFragment.GetA_asInt()*theParameters->GetLevelDensity();
G4double gg = (6.0/pi2)*aFragment.GetA_asInt()*theParameters->GetLevelDensity();
// Average exciton energy relative to bottom of nuclear well
G4double Eav = 2*p*(p+1)/((p+h)*g);
G4double Eav = 2*p*(p+1)/((p+h)*gg);
// Excitation energy relative to the Fermi Level
G4double Uf = std::max(U - (p - h)*Ef , 0.0);
// G4double Uf = U - KineticEnergyOfEmittedFragment - Bemission;
G4double w_num = rho(p+1, h, g, Uf, Ef);
G4double w_den = rho(p, h, g, Uf, Ef);
G4double w_num = rho(p+1, h, gg, Uf, Ef);
G4double w_den = rho(p, h, gg, Uf, Ef);
if (w_num > 0.0 && w_den > 0.0)
{
Eav *= (w_num/w_den);
@@ -261,16 +262,16 @@ G4PreCompoundEmission::AngularDistribution(G4VPreCompoundFragment* thePreFragmen
theFinalMomentum.rotateUz(theIncidentDirection);
}
G4double G4PreCompoundEmission::rho(G4int p, G4int h, G4double g,
G4double G4PreCompoundEmission::rho(G4int p, G4int h, G4double gg,
G4double E, G4double Ef) const
{
// 25.02.2010 V.Ivanchenko added more protections
G4double Aph = (p*p + h*h + p - 3.0*h)/(4.0*g);
// G4double alpha = (p*p + h*h)/(2.0*g);
G4double Aph = (p*p + h*h + p - 3.0*h)/(4.0*gg);
// G4double alpha = (p*p + h*h)/(2.0*gg);
if ( E - Aph < 0.0) { return 0.0; }
G4double logConst = (p+h)*std::log(g)
G4double logConst = (p+h)*std::log(gg)
- g4pow->logfactorial(p+h-1) - g4pow->logfactorial(p) - g4pow->logfactorial(h);
// initialise values using j=0
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundEmissionFactory.cc,v 1.5 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
#include "G4PreCompoundEmissionFactory.hh"
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundFragment.cc,v 1.11 2010-11-24 11:55:40 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// J. M. Quesada (August 2008).
// Based on previous work by V. Lara
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundFragmentVector.cc,v 1.12 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// Hadronic Process: Nuclear Preequilibrium
// by V. Lara
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundHe3.cc,v 1.9 2010-11-17 11:06:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// -------------------------------------------------------------------
//
@@ -42,6 +41,7 @@
//
#include "G4PreCompoundHe3.hh"
#include "G4SystemOfUnits.hh"
#include "G4He3.hh"
G4PreCompoundHe3::G4PreCompoundHe3()
@@ -146,7 +146,7 @@ G4double G4PreCompoundHe3::GetOpt12(const G4double K)
G4double p2 = -1389.;
G4double landa0 = -0.00535;
G4double landa1 = -11.16;
G4double mu0 = 555.5;
G4double mm0 = 555.5;
G4double mu1 = 0.40;
G4double nu0 = 687.4;
G4double nu1 = -476.3;
@@ -158,7 +158,7 @@ G4double G4PreCompoundHe3::GetOpt12(const G4double K)
landa = landa0*ResidualA + landa1;
G4double resmu1 = g4pow->powZ(ResidualA,mu1);
mu = mu0*resmu1;
mu = mm0*resmu1;
nu = resmu1*(nu0 + nu1*Ec + nu2*(Ec*Ec));
q = landa - nu/(Ec*Ec) - 2*p*Ec;
r = mu + 2*nu/Ec + p*(Ec*Ec);
@@ -189,7 +189,7 @@ G4double G4PreCompoundHe3::GetOpt34(const G4double K)
G4double p2 = -1487.;
G4double landa0 = 0.00459;
G4double landa1 = -8.93;
G4double mu0 = 611.2;
G4double mm0 = 611.2;
G4double mu1 = 0.35;
G4double nu0 = 473.8;
G4double nu1 = -468.2;
@@ -204,7 +204,7 @@ G4double G4PreCompoundHe3::GetOpt34(const G4double K)
p = p0 + p1/ec + p2/ecsq;
landa = landa0*ResidualA + landa1;
a = g4pow->powZ(ResidualA,mu1);
mu = mu0 * a;
mu = mm0 * a;
nu = a* (nu0+nu1*ec+nu2*ecsq);
xnulam = nu / landa;
if (xnulam > spill) { xnulam=0.; }
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundIon.cc,v 1.17 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// -------------------------------------------------------------------
//
@@ -42,6 +41,7 @@
//
#include "G4PreCompoundIon.hh"
#include "G4PhysicalConstants.hh"
G4PreCompoundIon::
G4PreCompoundIon(const G4ParticleDefinition* part,
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundModel.cc,v 1.30 2010-11-24 11:55:40 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -43,8 +42,12 @@
// - emission and transition classes created at initialisation
// - options are set at initialisation
// - do not use copy-constructors for G4Fragment
// 03.01.2012 V.Ivanchenko Added pointer to G4ExcitationHandler to the
// constructor
#include "G4PreCompoundModel.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4PreCompoundEmission.hh"
#include "G4PreCompoundTransitions.hh"
#include "G4GNASHTransitions.hh"
@@ -60,12 +63,13 @@
#include "G4ParticleTable.hh"
#include "G4LorentzVector.hh"
G4PreCompoundModel::G4PreCompoundModel(G4ExcitationHandler * const value)
: G4VPreCompoundModel(value), useHETCEmission(false), useGNASHTransition(false),
OPTxs(3), useSICB(false), useNGB(false), useSCO(false), useCEMtr(true),
maxZ(3), maxA(5)
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)
//maxZ(9), maxA(17)
{
if(!ptr) { SetExcitationHandler(new G4ExcitationHandler()); }
theParameters = G4PreCompoundParameters::GetAddress();
theEmission = new G4PreCompoundEmission();
@@ -87,8 +91,31 @@ G4PreCompoundModel::~G4PreCompoundModel()
{
delete theEmission;
delete theTransition;
delete GetExcitationHandler();
}
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"
<< std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
G4HadFinalState* G4PreCompoundModel::ApplyYourself(const G4HadProjectile & thePrimary,
@@ -183,10 +210,10 @@ G4ReactionProductVector* G4PreCompoundModel::DeExcite(G4Fragment& aFragment)
theEmission->Initialize(aFragment);
G4double g = (6.0/pi2)*aFragment.GetA_asInt()*theParameters->GetLevelDensity();
G4double gg = (6.0/pi2)*aFragment.GetA_asInt()*theParameters->GetLevelDensity();
G4int EquilibriumExcitonNumber =
static_cast<G4int>(std::sqrt(2.0*g*aFragment.GetExcitationEnergy())+ 0.5);
G4lrint(std::sqrt(2*gg*aFragment.GetExcitationEnergy()));
//
// G4cout<<"Neq="<<EquilibriumExcitonNumber<<G4endl;
//
@@ -343,7 +370,3 @@ void G4PreCompoundModel::UseCEMtr()
}
/////////////////////////////////////////////////////////////////////////////////////////
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundNeutron.cc,v 1.7 2010-11-17 11:06:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// -------------------------------------------------------------------
//
@@ -43,6 +42,7 @@
//
#include "G4PreCompoundNeutron.hh"
#include "G4SystemOfUnits.hh"
#include "G4Neutron.hh"
G4PreCompoundNeutron::G4PreCompoundNeutron()
@@ -120,17 +120,17 @@ G4double G4PreCompoundNeutron::GetOpt12(G4double K)
// JMQ xsec is set constat above limit of validity
if (K > 50*MeV) { Kc = 50*MeV; }
G4double landa, landa0, landa1, mu, mu0, mu1,nu, nu0, nu1, nu2,xs;
G4double landa, landa0, landa1, mu, mm0, mu1,nu, nu0, nu1, nu2,xs;
landa0 = 18.57;
landa1 = -22.93;
mu0 = 381.7;
mm0 = 381.7;
mu1 = 24.31;
nu0 = 0.172;
nu1 = -15.39;
nu2 = 804.8;
landa = landa0/ResidualAthrd + landa1;
mu = mu0*ResidualAthrd + mu1*ResidualAthrd*ResidualAthrd;
mu = mm0*ResidualAthrd + mu1*ResidualAthrd*ResidualAthrd;
nu = nu0*ResidualAthrd*ResidualA + nu1*ResidualAthrd*ResidualAthrd + nu2 ;
xs=landa*Kc + mu + nu/Kc;
if (xs <= 0.0 ){
@@ -146,7 +146,7 @@ G4double G4PreCompoundNeutron::GetOpt12(G4double K)
// *********** OPT=3,4 : Kalbach's cross sections (from PRECO code)*************
G4double G4PreCompoundNeutron::GetOpt34(G4double K)
{
G4double landa, landa0, landa1, mu, mu0, mu1,nu, nu0, nu1, nu2;
G4double landa, landa0, landa1, mu, mm0, mu1,nu, nu0, nu1, nu2;
G4double p, p0;
G4double flow,ec,ecsq,xnulam,etest(0.),ra(0.),a,signor(1.),sig;
G4double b,ecut,cut,ecut2,geom,elab;
@@ -157,7 +157,7 @@ G4double G4PreCompoundNeutron::GetOpt34(G4double K)
p0 = -312.;
landa0 = 12.10;
landa1= -11.27;
mu0 = 234.1;
mm0 = 234.1;
mu1 = 38.26;
nu0 = 1.55;
nu1 = -106.1;
@@ -166,7 +166,7 @@ G4double G4PreCompoundNeutron::GetOpt34(G4double K)
if (ResidualA < 40) { signor =0.7 + ResidualA*0.0075; }
if (ResidualA > 210) { signor = 1. + (ResidualA-210)/250.; }
landa = landa0/ResidualAthrd + landa1;
mu = mu0*ResidualAthrd + mu1*ResidualAthrd*ResidualAthrd;
mu = mm0*ResidualAthrd + mu1*ResidualAthrd*ResidualAthrd;
nu = nu0*ResidualAthrd*ResidualA + nu1*ResidualAthrd*ResidualAthrd + nu2;
// JMQ very low energy behaviour corrected (problem for A (apprx.)>60)
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundNucleon.cc,v 1.14 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// -------------------------------------------------------------------
//
@@ -42,6 +41,8 @@
//
#include "G4PreCompoundNucleon.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
G4PreCompoundNucleon::
G4PreCompoundNucleon(const G4ParticleDefinition* part,
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundParameters.cc,v 1.4 2010-08-18 14:07:24 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
//
@@ -32,6 +31,7 @@
//
#include "G4PreCompoundParameters.hh"
#include "G4SystemOfUnits.hh"
G4PreCompoundParameters* G4PreCompoundParameters::theParameters = 0;
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundProton.cc,v 1.8 2010-11-17 11:06:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// -------------------------------------------------------------------
//
@@ -44,6 +43,8 @@
//
#include "G4PreCompoundProton.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4Proton.hh"
G4PreCompoundProton::G4PreCompoundProton()
@@ -129,7 +130,7 @@ G4double G4PreCompoundProton::GetOpt1(G4double K)
// JMQ xsec is set constat above limit of validity
if (K > 50*MeV) { Kc = 50*MeV; }
G4double landa, landa0, landa1, mu, mu0, mu1,nu, nu0, nu1, nu2,xs;
G4double landa, landa0, landa1, mu, mm0, mu1,nu, nu0, nu1, nu2,xs;
G4double p, p0, p1, p2,Ec,delta,q,r,ji;
p0 = 15.72;
@@ -137,7 +138,7 @@ G4double G4PreCompoundProton::GetOpt1(G4double K)
p2 = -449.0;
landa0 = 0.00437;
landa1 = -16.58;
mu0 = 244.7;
mm0 = 244.7;
mu1 = 0.503;
nu0 = 273.1;
nu1 = -182.4;
@@ -149,7 +150,7 @@ G4double G4PreCompoundProton::GetOpt1(G4double K)
landa = landa0*ResidualA + landa1;
G4double resmu1 = g4pow->powZ(ResidualA,mu1);
mu = mu0*resmu1;
mu = mm0*resmu1;
nu = resmu1*(nu0 + nu1*Ec + nu2*(Ec*Ec));
q = landa - nu/(Ec*Ec) - 2*p*Ec;
r = mu + 2*nu/Ec + p*(Ec*Ec);
@@ -212,14 +213,14 @@ G4double G4PreCompoundProton::GetOpt3(const G4double K)
// ** p from becchetti and greenlees (but modified with sub-barrier
// ** correction function and xp2 changed from -449)
G4double landa, landa0, landa1, mu, mu0, mu1,nu, nu0, nu1, nu2;
G4double landa, landa0, landa1, mu, mm0, mu1,nu, nu0, nu1, nu2;
G4double p, p0, p1, p2;
p0 = 15.72;
p1 = 9.65;
p2 = -300.;
landa0 = 0.00437;
landa1 = -16.58;
mu0 = 244.7;
mm0 = 244.7;
mu1 = 0.503;
nu0 = 273.1;
nu1 = -182.4;
@@ -248,7 +249,7 @@ G4double G4PreCompoundProton::GetOpt3(const G4double K)
p = p0 + p1/ec + p2/ecsq;
landa = landa0*ResidualA + landa1;
a = g4pow->powZ(ResidualA,mu1);
mu = mu0 * a;
mu = mm0 * a;
nu = a* (nu0+nu1*ec+nu2*ecsq);
c =std::min(3.15,ec*0.5);
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundTransitions.cc,v 1.27 2010-10-20 00:47:46 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// -------------------------------------------------------------------
//
@@ -47,11 +46,13 @@
// 30.08.2011 M.Kelsey - Skip CalculateProbability if no excitons
#include "G4PreCompoundTransitions.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "Randomize.hh"
#include "G4Pow.hh"
#include "G4HadronicException.hh"
#include "G4PreCompoundParameters.hh"
#include "G4Proton.hh"
#include "Randomize.hh"
#include "G4Pow.hh"
G4PreCompoundTransitions::G4PreCompoundTransitions()
{
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PreCompoundTriton.cc,v 1.8 2010-11-02 11:27:27 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// -------------------------------------------------------------------
//
@@ -42,6 +41,7 @@
//
#include "G4PreCompoundTriton.hh"
#include "G4SystemOfUnits.hh"
#include "G4Triton.hh"
G4PreCompoundTriton::G4PreCompoundTriton()
@@ -142,7 +142,7 @@ G4double G4PreCompoundTriton::GetOpt12(G4double K)
G4double p2 = -2147.;
G4double landa0 = -0.0426;
G4double landa1 = -10.33;
G4double mu0 = 601.9;
G4double mm0 = 601.9;
G4double mu1 = 0.37;
G4double nu0 = 583.0;
G4double nu1 = -546.2;
@@ -154,7 +154,7 @@ G4double G4PreCompoundTriton::GetOpt12(G4double K)
landa = landa0*ResidualA + landa1;
G4double resmu1 = g4pow->powZ(ResidualA,mu1);
mu = mu0*resmu1;
mu = mm0*resmu1;
nu = resmu1*(nu0 + nu1*Ec + nu2*(Ec*Ec));
q = landa - nu/(Ec*Ec) - 2*p*Ec;
r = mu + 2*nu/Ec + p*(Ec*Ec);
@@ -184,7 +184,7 @@ G4double G4PreCompoundTriton::GetOpt34(G4double K)
G4double p2 = -1608.;
G4double landa0 = 0.0186;
G4double landa1 = -8.90;
G4double mu0 = 686.3;
G4double mm0 = 686.3;
G4double mu1 = 0.325;
G4double nu0 = 368.9;
G4double nu1 = -522.2;
@@ -199,7 +199,7 @@ G4double G4PreCompoundTriton::GetOpt34(G4double K)
p = p0 + p1/ec + p2/ecsq;
landa = landa0*ResidualA + landa1;
a = g4pow->powZ(ResidualA,mu1);
mu = mu0 * a;
mu = mm0 * a;
nu = a* (nu0+nu1*ec+nu2*ecsq);
xnulam = nu / landa;
if (xnulam > spill) { xnulam=0.; }
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4VPreCompoundEmissionFactory.cc,v 1.5 2010-08-28 15:16:55 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// by V. Lara
@@ -23,8 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4VPreCompoundFragment.cc,v 1.15 2010-11-02 17:33:28 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// J. M. Quesada (August 2008). Based on previous work by V. Lara
//
@@ -33,6 +32,7 @@
// use int Z and A and cleanup
#include "G4VPreCompoundFragment.hh"
#include "G4SystemOfUnits.hh"
#include "G4PreCompoundParameters.hh"
#include "G4NucleiProperties.hh"
@@ -78,7 +78,6 @@ G4VPreCompoundFragment::Initialize(const G4Fragment & aFragment)
{
theRestNucleusA = aFragment.GetA_asInt() - theA;
theRestNucleusZ = aFragment.GetZ_asInt() - theZ;
theRestNucleusA13 = g4pow->Z13(theRestNucleusA);
if ((theRestNucleusA < theRestNucleusZ) ||
(theRestNucleusA < theA) ||
@@ -88,6 +87,8 @@ G4VPreCompoundFragment::Initialize(const G4Fragment & aFragment)
theMaximalKineticEnergy = 0.0;
return;
}
theRestNucleusA13 = g4pow->Z13(theRestNucleusA);
// Calculate Coulomb barrier
theCoulombBarrier = theCoulombBarrierPtr->
@@ -23,13 +23,14 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4VPreCompoundTransitions.cc,v 1.1 2010-08-20 07:42:19 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
// $Id$
//
// V.Ivanchenko 20.08.2010
//
#include "G4VPreCompoundTransitions.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
G4VPreCompoundTransitions::G4VPreCompoundTransitions()
:useNGB(false),useCEMtr(false),