Import Geant4 11.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2023-12-08 10:43:34 +01:00
parent dd1f179cda
commit 860a2b92bf
3962 changed files with 139318 additions and 164259 deletions
@@ -1,48 +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. *
// ********************************************************************
//
//
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Dec 1999)
#include "G4AlphaCoulombBarrier.hh"
G4AlphaCoulombBarrier::G4AlphaCoulombBarrier() : G4CoulombBarrier(4,2) {}
G4AlphaCoulombBarrier::~G4AlphaCoulombBarrier() {}
G4double G4AlphaCoulombBarrier::BarrierPenetrationFactor(G4int aZ) const
{
// Data comes from
// Dostrovsky, Fraenkel and Friedlander
// Physical Review, vol 116, num. 3 1959
//
// const G4int size = 5;
// const G4double Zlist[size] = {10.0, 20.0, 30.0, 50.0, 70.0};
// const G4double Kalpha[size] = {0.68, 0.82, 0.91, 0.97, 0.98};
return (aZ >= 70) ? 0.98 :
(((0.23684e-5*aZ) - 0.42143e-3)*aZ + 0.25222e-1)*aZ + 0.46699;
}
@@ -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. *
// ********************************************************************
//
//
// Hadronic Process: Nuclear De-excitations
// Constant level density parameter (for photon evaporation)
//
// by C. Dallapiccola (Nov 1998)
//
#include "G4ConstantLevelDensityParameter.hh"
#include "G4SystemOfUnits.hh"
G4ConstantLevelDensityParameter::G4ConstantLevelDensityParameter()
: EvapLevelDensityParameter(0.1/CLHEP::MeV)
{}
G4ConstantLevelDensityParameter::~G4ConstantLevelDensityParameter()
{}
G4double G4ConstantLevelDensityParameter::LevelDensityParameter(
G4int A, G4int, G4double) const
{
return A * EvapLevelDensityParameter;
}
@@ -1,50 +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. *
// ********************************************************************
//
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Dec 1999)
#include "G4DeuteronCoulombBarrier.hh"
G4DeuteronCoulombBarrier::G4DeuteronCoulombBarrier() : G4CoulombBarrier(2,1) {}
G4DeuteronCoulombBarrier::~G4DeuteronCoulombBarrier() {}
G4double G4DeuteronCoulombBarrier::BarrierPenetrationFactor(G4int aZ) const
{
// Data comes from
// Dostrovsky, Fraenkel and Friedlander
// Physical Review, vol 116, num. 3 1959
//
// const G4int size = 5;
// const G4double Zlist[size] = {10.0, 20.0, 30.0, 50.0, 70.0};
// const G4double Kprot[size] = {0.42, 0.58, 0.68, 0.77, 0.80};
//
// K for deuteron is K for protons + 0.06
G4double K = (aZ >= 70) ? 0.80 :
(((0.2357e-5*aZ) - 0.42679e-3)*aZ + 0.27035e-1)*aZ + 0.19025;
return K+0.06;
}
@@ -1,51 +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. *
// ********************************************************************
//
//
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Dec 1999)
#include "G4He3CoulombBarrier.hh"
G4He3CoulombBarrier::G4He3CoulombBarrier() : G4CoulombBarrier(3,2) {}
G4He3CoulombBarrier::~G4He3CoulombBarrier() {}
G4double G4He3CoulombBarrier::BarrierPenetrationFactor(G4int aZ) const
{
// Data comes from
// Dostrovsky, Fraenkel and Friedlander
// Physical Review, vol 116, num. 3 1959
//
// const G4int size = 5;
// const G4double Zlist[size] = {10.0, 20.0, 30.0, 50.0, 70.0};
// const G4double KHe3[size] = {0.68, 0.82, 0.91, 0.97, 0.98};
//
// K for He3 is K for alphas + 0.12
G4double K = (aZ >= 70) ? 0.98 :
(((0.23684e-5*aZ) - 0.42143e-3)*aZ + 0.25222e-1)*aZ + 0.46699;
return K+0.12;
}
@@ -80,16 +80,9 @@ G4KalbachCrossSection::ComputeCrossSection(G4double K, G4double cb,
G4double sig = 0.0;
G4double signor = 1.0;
G4double lambda, mu, nu;
G4double ec = 0.5;
G4double ec = std::min(4.0, 100./(G4double)resA); // in MeV
if(0 < Z) { ec = cb; }
//JMQ 13.02.2009 tuning for improving cluster emission ddxs
// (spallation benchmark)
/*
G4double xx = 1.7;
if(1 == A) { xx = 1.5; }
ec = 1.44 * Z * resZ / (xx*resA13 + paramK[idx][10]);
}
*/
G4double ecsq = ec*ec;
G4double elab = K * (A + resA) / G4double(resA);
@@ -116,8 +109,9 @@ G4KalbachCrossSection::ComputeCrossSection(G4double K, G4double cb,
nu = amu1* (paramK[idx][7] + paramK[idx][8]*ec + paramK[idx][9]*ecsq);
}
/*
G4cout << "## idx= " << idx << " K= " << K << " elab= " << elab << " ec= " << ec
<< " lambda= " << lambda << " mu= " << mu << " nu= " << nu << G4endl;
G4cout << "## idx=" << idx << " K=" << K << " elab=" << elab
<< " ec=" << ec << " lambda=" << lambda << " mu=" << mu
<< " nu=" << nu << G4endl;
*/
// threashold cross section
if(elab < ec) {
@@ -125,10 +119,8 @@ G4KalbachCrossSection::ComputeCrossSection(G4double K, G4double cb,
if(0 < Z) { p += paramK[idx][1]/ec + paramK[idx][2]/ecsq; }
G4double a = -2*p*ec + lambda - nu/ecsq;
G4double b = p*ecsq + mu + 2*nu/ec;
G4double ecut;
G4double det = a*a - 4*p*b;
if (det > 0.0) { ecut = (std::sqrt(det) - a)/(2*p); }
else { ecut = -a/(2*p); }
G4double ecut = (det > 0.0) ? (std::sqrt(det) - a)/(2*p) : -a/(2*p);
//G4cout << " elab= " << elab << " ecut= " << ecut << " sig= " << sig
// << " sig1= " << (p*elab*elab + a*elab + b)*signor << G4endl;
@@ -1,37 +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. *
// ********************************************************************
//
//
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Dec 1999)
#include "G4NeutronCoulombBarrier.hh"
G4NeutronCoulombBarrier::G4NeutronCoulombBarrier() : G4CoulombBarrier(1,0) {}
G4NeutronCoulombBarrier::~G4NeutronCoulombBarrier() {}
@@ -1,50 +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. *
// ********************************************************************
//
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Dec 1999)
#include "G4ProtonCoulombBarrier.hh"
G4ProtonCoulombBarrier::G4ProtonCoulombBarrier() : G4CoulombBarrier(1,1)
{}
G4ProtonCoulombBarrier::~G4ProtonCoulombBarrier()
{}
G4double G4ProtonCoulombBarrier::BarrierPenetrationFactor(G4int aZ) const
{
// Data comes from
// Dostrovsky, Fraenkel and Friedlander
// Physical Review, vol 116, num. 3 1959
//
// const G4int size = 5;
// const G4double Zlist[size] = {10.0, 20.0, 30.0, 50.0, 70.0};
// const G4double Kprot[size] = {0.42, 0.58, 0.68, 0.77, 0.80};
return (aZ >= 70) ? 0.80 :
(((0.2357e-5*aZ) - 0.42679e-3)*aZ + 0.27035e-1)*aZ + 0.19025;
}
@@ -1,51 +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. *
// ********************************************************************
//
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Dec 1999)
#include "G4TritonCoulombBarrier.hh"
G4TritonCoulombBarrier::G4TritonCoulombBarrier() : G4CoulombBarrier(3,1) {}
G4TritonCoulombBarrier::~G4TritonCoulombBarrier() {}
G4double G4TritonCoulombBarrier::BarrierPenetrationFactor(G4int aZ) const
{
// Data comes from
// Dostrovsky, Fraenkel and Friedlander
// Physical Review, vol 116, num. 3 1959
//
// const G4int size = 5;
// const G4double Zlist[size] = {10.0, 20.0, 30.0, 50.0, 70.0};
// const G4double Kprot[size] = {0.42, 0.58, 0.68, 0.77, 0.80};
//
// K for Triton is K for protons + 0.12
G4double K = (aZ >= 70) ? 0.80 :
(((0.2357e-5*aZ) - 0.42679e-3)*aZ + 0.27035e-1)*aZ + 0.19025;
return K+0.12;
}