Import Geant4 5.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:28:22 +02:00
parent fbd4999cf7
commit 4aea781e80
5454 changed files with 223141 additions and 67347 deletions
@@ -1,4 +1,4 @@
# $Id: GNUmakefile,v 1.1 1999/01/07 16:11:31 gunter Exp $
# $Id: GNUmakefile,v 1.3 2003/06/03 10:16:32 jwellisc Exp $
# ----------------------------------------------------------------
# GNUmakefile for hadronic management library. G.Folger 10-Dec-97
# ----------------------------------------------------------------
@@ -67,7 +67,7 @@ public:
verboseLevel = value;
}
G4int GetVerboseLevel(G4int value)
G4int GetVerboseLevel()
{
return verboseLevel;
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4ElectroNuclearCrossSection.hh,v 1.8 2002/12/12 19:16:49 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4ElectroNuclearCrossSection.hh,v 1.10 2003/06/16 17:03:00 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// GEANT4 physics class: G4ElectroNuclearCrossSection -- header file
@@ -39,7 +39,7 @@
#include "G4ParticleTable.hh"
#include "G4NucleiProperties.hh"
#include "G4NucleiPropertiesTable.hh"
#include "g4std/vector"
#include <vector>
#include "Randomize.hh"
#include "G4Electron.hh"
#include "G4Positron.hh"
@@ -55,7 +55,7 @@ public:
~G4ElectroNuclearCrossSection() {}
G4bool IsApplicable(const G4DynamicParticle* aParticle, const G4Element* anElement)
G4bool IsApplicable(const G4DynamicParticle* aParticle, const G4Element* )
{
//return theHadronCrossSections->IsApplicable(aParticle, anElement);
// Possible prototype
@@ -139,7 +139,7 @@ inline G4double G4ElectroNuclearCrossSection::ThresholdEnergy(G4int Z, G4int N)
return dN;
}
inline G4double G4ElectroNuclearCrossSection::DFun(G4double x) // Original PhoNuc cross section
inline G4double G4ElectroNuclearCrossSection::DFun(G4double /* x */) // Original PhoNuc cross section
{
static const G4double shd=1.0734; // HE PomShadowing(D)
static const G4double poc=0.0375; // HE Pomeron coefficient
@@ -151,7 +151,7 @@ inline G4double G4ElectroNuclearCrossSection::DFun(G4double x) // Original PhoNu
return poc*(lE-pos)+shd*exp(-reg*lE);
}
inline G4double G4ElectroNuclearCrossSection::Fun(G4double x) // Integrated PhoNuc cross section
inline G4double G4ElectroNuclearCrossSection::Fun(G4double /* x */) // Integrated PhoNuc cross section
{
static const G4double mel=0.5109989; // Mass of electron in MeV
static const G4double lmel=log(mel); // Log of electron mass
@@ -61,7 +61,7 @@ public:
}
G4double GetCrossSection(const G4DynamicParticle* aParticle,
const G4Element* anElement, G4double aTemperature)
const G4Element* anElement, G4double )
{
return theHadronCrossSections->GetCaptureCrossSection(aParticle,
anElement);
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4HadronCrossSections.hh,v 1.8 2002/12/12 19:16:49 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4HadronCrossSections.hh,v 1.9 2003/06/03 09:21:38 hpw Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// GEANT4 Hadron physics class -- header file
@@ -105,7 +105,7 @@ public:
}
G4bool IsApplicable(const G4DynamicParticle* aParticle,
const G4Element* anElement)
const G4Element* )
{
return (GetParticleCode(aParticle) > 0);
}
@@ -60,7 +60,7 @@ public:
}
G4double GetCrossSection(const G4DynamicParticle* aParticle,
const G4Element* anElement, G4double aTemperature)
const G4Element* anElement, G4double )
{
return theHadronCrossSections->GetElasticCrossSection(aParticle,
anElement);
@@ -59,7 +59,7 @@ public:
}
G4double GetCrossSection(const G4DynamicParticle* aParticle,
const G4Element* anElement, G4double aTemperature)
const G4Element* anElement, G4double )
{
return theHadronCrossSections->GetFissionCrossSection(aParticle,
anElement);
@@ -58,7 +58,7 @@ public:
}
G4double GetCrossSection(const G4DynamicParticle* aParticle,
const G4Element* anElement, G4double aTemperature)
const G4Element* anElement, G4double /*aTemperature*/)
{
return theHadronCrossSections->GetInelasticCrossSection(aParticle,
anElement);
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4PhotoNuclearCrossSection.hh,v 1.7 2002/12/12 19:16:49 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4PhotoNuclearCrossSection.hh,v 1.9 2003/06/16 17:03:01 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// GEANT4 physics class: G4PhotoNuclearCrossSection -- header file
@@ -41,7 +41,7 @@
#include "G4ParticleTable.hh"
#include "G4NucleiProperties.hh"
#include "G4NucleiPropertiesTable.hh"
#include "g4std/vector"
#include <vector>
class G4PhotoNuclearCrossSection : public G4VCrossSectionDataSet
{
@@ -54,7 +54,7 @@ public:
~G4PhotoNuclearCrossSection() {}
G4bool IsApplicable(const G4DynamicParticle* aParticle, const G4Element* anElement)
G4bool IsApplicable(const G4DynamicParticle* aParticle, const G4Element* )
{
//return theHadronCrossSections->IsApplicable(aParticle, anElement);
// Possible prototype
@@ -24,11 +24,11 @@
#ifndef G4PiData_h
#define G4PiData_h
#include "g4std/vector"
#include "g4std/algorithm"
#include <vector>
#include <algorithm>
#include "globals.hh"
class G4PiData : public G4std::vector<G4std::pair<G4double, G4std::pair<G4double, G4double > > >
class G4PiData : public std::vector<std::pair<G4double, std::pair<G4double, G4double > > >
{
public:
G4PiData(const G4double * aTotal, const G4double * aInelastic, const G4double * anEnergy, G4int nPoints);
@@ -127,9 +127,9 @@ static const G4double u_m_in[35];
static const G4double u_p_t[30];
static const G4double u_p_in[30];
G4std::vector<G4int> theZ;
G4std::vector<G4PiData *> thePipData;
G4std::vector<G4PiData *> thePimData;
std::vector<G4int> theZ;
std::vector<G4PiData *> thePipData;
std::vector<G4PiData *> thePimData;
};
@@ -76,7 +76,7 @@ public: // Without Description
verboseLevel = value;
}
G4int GetVerboseLevel(G4int value)
G4int GetVerboseLevel()
{
return verboseLevel;
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4ElectroNuclearCrossSection.cc,v 1.16 2003/02/13 08:37:49 jwellisc Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4ElectroNuclearCrossSection.cc,v 1.18 2003/06/16 17:03:04 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// G4 Physics class: G4ElectroNuclearCrossSection for gamma+A cross sections
@@ -56,7 +56,7 @@ G4double G4ElectroNuclearCrossSection::lastSig=0.;// Last value of the Cross Se
// The main member function giving the gamma-A cross section (E in GeV, CS in mb)
G4double G4ElectroNuclearCrossSection::GetCrossSection(const G4DynamicParticle* aPart,
const G4Element* anEle, G4double T)
const G4Element* anEle, G4double )
{
static const G4int nE=336; // !! If you change this, change it in GetFunctions() (*.hh) !!
static const G4int mL=nE-1;
@@ -69,14 +69,14 @@ G4double G4ElectroNuclearCrossSection::GetCrossSection(const G4DynamicParticle*
static const G4double mel=0.5109989; // Mass of electron in MeV
static const G4double lmel=log(mel); // Log of electron mass
// Associative memory for acceleration
static G4std::vector <G4int> colN; // Vector of N for calculated nucleus
static G4std::vector <G4int> colZ; // Vector of Z for calculated nucleus
static G4std::vector <G4int> colF; // Vector of LastZeroPosition in the J-functions
static G4std::vector <G4double> colTH; // Vector of energy thresholds
static G4std::vector <G4double> colH; // Vector of high energy coefficient
static G4std::vector <G4double*> J1; // Vector of pointers to the J1 functions
static G4std::vector <G4double*> J2; // Vector of pointers to the J2 functions
static G4std::vector <G4double*> J3; // Vector of pointers to the J3 functions
static std::vector <G4int> colN; // Vector of N for calculated nucleus
static std::vector <G4int> colZ; // Vector of Z for calculated nucleus
static std::vector <G4int> colF; // Vector of LastZeroPosition in the J-functions
static std::vector <G4double> colTH; // Vector of energy thresholds
static std::vector <G4double> colH; // Vector of high energy coefficient
static std::vector <G4double*> J1; // Vector of pointers to the J1 functions
static std::vector <G4double*> J2; // Vector of pointers to the J2 functions
static std::vector <G4double*> J3; // Vector of pointers to the J3 functions
// *** End of Static Definitions (Associative Memory) ***
const G4double Energy = aPart->GetKineticEnergy()/MeV; // Energy of the electron
const G4int targetAtomicNumber = static_cast<int>(anEle->GetN()+.499); //@@ Nat mixture (?!)
@@ -22,7 +22,7 @@
//
//
// $Id: G4HadronCaptureDataSet.cc,v 1.5 2002/12/12 19:16:50 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// G4 Physics class: HadronCaptureDataSet for cross sections
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4HadronCrossSections.cc,v 1.10 2002/12/12 19:16:50 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4HadronCrossSections.cc,v 1.11 2003/06/16 17:03:06 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// G4 Hadron Physics class G4HadronCrossSections
@@ -1499,7 +1499,7 @@ G4HadronCrossSections::GetCaptureCrossSection(
G4double ek = aParticle->GetKineticEnergy()/GeV;
if (ek > 0.0327) return 0.;
G4double ekx = G4std::max(ek, 1.e-9);
G4double ekx = std::max(ek, 1.e-9);
G4double z = anElement->GetZ();
G4int izno = static_cast<G4int> (z + 0.01);
if (izno > 100) izno = 100; // Not in GHESIG
@@ -1553,7 +1553,7 @@ G4HadronCrossSections::GetFissionCrossSection(
G4double z43ba;
if (j == 4) {
z43ba = pow(z, 4./3.)/a;
z43ba = G4std::max(-67. + 38.7*z43ba, 0.);
z43ba = std::max(-67. + 38.7*z43ba, 0.);
}
else {
z43ba = 1.;
@@ -22,7 +22,7 @@
//
//
// $Id: G4HadronElasticDataSet.cc,v 1.5 2002/12/12 19:16:51 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// G4 Physics class: HadronElasticDataSet for cross sections
@@ -22,7 +22,7 @@
//
//
// $Id: G4HadronFissionDataSet.cc,v 1.5 2002/12/12 19:16:51 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// G4 Physics class: HadronFissionDataSet for cross sections
@@ -22,7 +22,7 @@
//
//
// $Id: G4HadronInelasticDataSet.cc,v 1.5 2002/12/12 19:16:52 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// G4 Physics class: HadronInelasticDataSet for cross sections
@@ -27,7 +27,7 @@
G4double G4NeutronInelasticCrossSection::
GetCrossSection(const G4DynamicParticle* aPart,
const G4Element* anEle, G4double aTemperature)
const G4Element* anEle, G4double )
{
G4double atomicNumber = anEle->GetN();
G4double nOfProtons = anEle->GetZ();
@@ -21,9 +21,9 @@
// ********************************************************************
//
//
// $Id: G4PhotoNuclearCrossSection.cc,v 1.9 2002/12/12 19:16:52 gunter Exp $
// $Id: G4PhotoNuclearCrossSection.cc,v 1.11 2003/06/16 17:03:07 gunter Exp $
// The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// G4 Physics class: G4PhotoNuclearCrossSection for gamma+A cross sections
@@ -50,7 +50,7 @@ G4double G4PhotoNuclearCrossSection::lastSP=0.; // Last value of the ShadowingP
// The main member function giving the gamma-A cross section (E in GeV, CS in mb)
G4double G4PhotoNuclearCrossSection::GetCrossSection(const G4DynamicParticle* aPart,
const G4Element* anEle, G4double T)
const G4Element* anEle, G4double )
{
static const G4double THmin=2.; // minimum Energy Threshold
static const G4double dE=1.; // step for the GDR table
@@ -71,12 +71,12 @@ G4double G4PhotoNuclearCrossSection::GetCrossSection(const G4DynamicParticle* aP
//static const G4double shp=1.075; // HE PomShadowing(P)
//
// Associative memory for acceleration
static G4std::vector <G4int> colN; // N of calculated nuclei
static G4std::vector <G4int> colZ; // Z of calculated nuclei
static G4std::vector <G4double> spA; // shadowing coefficients (A-dependent)
static G4std::vector <G4double> eTH; // energy threshold (A-dependent)
static G4std::vector <G4double*> GDR; // Vector of pointers to the GDRPhotonuclearCrossSection
static G4std::vector <G4double*> HEN; // Vector of pointers to the HighEnPhotonuclearCrossSect
static std::vector <G4int> colN; // N of calculated nuclei
static std::vector <G4int> colZ; // Z of calculated nuclei
static std::vector <G4double> spA; // shadowing coefficients (A-dependent)
static std::vector <G4double> eTH; // energy threshold (A-dependent)
static std::vector <G4double*> GDR; // Vector of pointers to the GDRPhotonuclearCrossSection
static std::vector <G4double*> HEN; // Vector of pointers to the HighEnPhotonuclearCrossSect
//
const G4double Energy = aPart->GetKineticEnergy()/MeV;
const G4int targetAtomicNumber = static_cast<int>(anEle->GetN()+.499); //@@ Nat mixture (?!)
@@ -20,8 +20,8 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: G4PiData.cc,v 1.5 2002/12/13 09:12:23 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4PiData.cc,v 1.6 2003/06/16 17:03:08 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
// --------------------------------------------------------------------
// by J.P Wellisch, Sun Sep 15 2002.
@@ -34,10 +34,10 @@ G4PiData(const G4double * aT, const G4double * aIn, const G4double * anE, G4int
G4int i=0;
for(i=0; i<nP; i++)
{
G4std::pair<G4double, G4double> x;
std::pair<G4double, G4double> x;
x.first=aT[i]*millibarn;
x.second=aIn[i]*millibarn;
G4std::pair<G4double, G4std::pair<G4double, G4double > > aP;
std::pair<G4double, std::pair<G4double, G4double > > aP;
aP.first=anE[i]*GeV;
aP.second=x;
push_back(aP);
@@ -65,7 +65,7 @@ ReactionXSection(G4double kineticEnergy)
x1=(*(it-1)).second.second;
e2=(*(it)).first;
x2=(*(it)).second.second;
result = G4std::max(0., x1 + (kineticEnergy-e1)*(x2-x1)/(e2-e1));
result = std::max(0., x1 + (kineticEnergy-e1)*(x2-x1)/(e2-e1));
return result;
}
@@ -82,6 +82,6 @@ ElasticXSection(G4double kineticEnergy)
x1=(*(it-1)).second.first - (*(it-1)).second.second;
e2=(*(it)).first;
x2=(*(it)).second.first - (*(it)).second.second;
result = G4std::max(0., x1 + (kineticEnergy-e1)*(x2-x1)/(e2-e1));
result = std::max(0., x1 + (kineticEnergy-e1)*(x2-x1)/(e2-e1));
return result;
}
@@ -155,14 +155,14 @@ G4PiNuclearCrossSection()
G4PiNuclearCrossSection::
~G4PiNuclearCrossSection()
{
G4std::for_each(thePimData.begin(), thePimData.end(), G4PiData::Delete());
G4std::for_each(thePipData.begin(), thePipData.end(), G4PiData::Delete());
std::for_each(thePimData.begin(), thePimData.end(), G4PiData::Delete());
std::for_each(thePipData.begin(), thePipData.end(), G4PiData::Delete());
}
G4double G4PiNuclearCrossSection::
GetCrossSection(const G4DynamicParticle* aParticle,
const G4Element* anElement,
G4double T)
G4double )
{
// precondition
G4bool ok = false;
@@ -202,7 +202,7 @@ GetCrossSection(const G4DynamicParticle* aParticle,
{
if(theZ[it]==Z)
{
G4std::vector<G4PiData *> * theData = &thePimData;
std::vector<G4PiData *> * theData = &thePimData;
if(thePipData[it]->AppliesTo(kineticEnergy))
{
theData = &thePipData;
@@ -211,12 +211,12 @@ GetCrossSection(const G4DynamicParticle* aParticle,
}
else
{
G4std::vector<G4PiData *> * theLData = &thePimData;
std::vector<G4PiData *> * theLData = &thePimData;
if(thePipData[it-1]->AppliesTo(kineticEnergy))
{
theLData = &thePipData;
}
G4std::vector<G4PiData *> * theHData = &thePimData;
std::vector<G4PiData *> * theHData = &thePimData;
if(thePipData[it]->AppliesTo(kineticEnergy))
{
theHData = &thePipData;
@@ -236,8 +236,8 @@ G4double G4PiNuclearCrossSection::
Interpolate(G4int Z1, G4int Z2, G4int Z, G4double x1, G4double x2)
{
G4double result = 0;
G4double r1 = x1/pow(Z1, 2./3.)*pow(Z, 2./3.);
G4double r2 = x2/pow(Z2, 2./3.)*pow(Z, 2./3.);
G4double r1 = x1/pow(G4double(Z1), 2./3.)*pow(G4double(Z), 2./3.);
G4double r2 = x2/pow(G4double(Z2), 2./3.)*pow(G4double(Z), 2./3.);
result = (r1+r2)/2.;
return result;
}
@@ -27,7 +27,7 @@
G4double G4ProtonInelasticCrossSection::
GetCrossSection(const G4DynamicParticle* aPart,
const G4Element* anEle, G4double aTemperature)
const G4Element* anEle, G4double )
{
G4double atomicNumber = anEle->GetN();
G4double nOfProtons = anEle->GetZ();
@@ -28,7 +28,7 @@
G4double G4TripathiCrossSection::
GetCrossSection(const G4DynamicParticle* aPart,
const G4Element*anEle, G4double aTemperature)
const G4Element*anEle, G4double )
{
G4double result = 0;
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: G4VCrossSectionDataSet.cc,v 1.5 2002/12/12 19:16:52 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// GEANT4 physics abstract class: G4VCrossSectionDataSet
// F.W. Jones, TRIUMF, 20-JAN-97
//
#include "G4VCrossSectionDataSet.hh"