Import Geant4 1.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:28:20 +02:00
parent aaa409b6ee
commit ca1c8cb059
2995 changed files with 106830 additions and 299600 deletions
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4CrossSectionDataStore.hh,v 1.1 1999/01/07 16:11:31 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4CrossSectionDataStore.hh,v 1.1.10.1 1999/12/07 20:51:27 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// GEANT4 physics class: G4CrossSectionDataStore -- header file
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4HadronCaptureDataSet.hh,v 1.1 1999/01/07 16:11:31 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4HadronCaptureDataSet.hh,v 1.1.10.1 1999/12/07 20:51:27 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// GEANT4 physics class: G4HadronCaptureDataSet -- header file
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4HadronCrossSections.hh,v 1.1 1999/01/07 16:11:31 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4HadronCrossSections.hh,v 1.2.4.1 1999/12/07 20:51:28 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// GEANT4 Hadron physics class -- header file
@@ -74,7 +74,7 @@ class G4HadronCrossSections
{
public:
G4HadronCrossSections() : verboseLevel(0)
G4HadronCrossSections() : verboseLevel(0), prevParticleDefinition(0)
{
}
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4HadronElasticDataSet.hh,v 1.1 1999/01/07 16:11:31 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4HadronElasticDataSet.hh,v 1.1.10.1 1999/12/07 20:51:28 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// GEANT4 physics class: G4HadronElasticDataSet -- header file
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4HadronFissionDataSet.hh,v 1.1 1999/01/07 16:11:31 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4HadronFissionDataSet.hh,v 1.1.10.1 1999/12/07 20:51:28 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// GEANT4 physics class: G4HadronFissionDataSet -- header file
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4HadronInelasticDataSet.hh,v 1.1 1999/01/07 16:11:32 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4HadronInelasticDataSet.hh,v 1.1.10.1 1999/12/07 20:51:28 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// GEANT4 physics class: G4HadronInelasticDataSet -- header file
@@ -0,0 +1,40 @@
// by JPW, working, but to be cleaned up. @@@@
#ifndef G4NeutronInelasticCrossSection_h
#define G4NeutronInelasticCrossSection_h
#include "globals.hh"
#include "G4Neutron.hh"
#include "G4VCrossSectionDataSet.hh"
class G4NeutronInelasticCrossSection : public G4VCrossSectionDataSet
{
public:
virtual
G4bool IsApplicable(const G4DynamicParticle* aPart, const G4Element*)
{
G4bool result = false;
if(( aPart->GetDefinition()==G4Neutron::Neutron()) &&
( aPart->GetKineticEnergy()<20*GeV) &&
aPart->GetKineticEnergy()>19.9*MeV) result = true;
return result;
}
virtual
G4double GetCrossSection(const G4DynamicParticle*, const G4Element*);
G4double GetCrossSection(G4double anEnergy, G4double anA, G4double aZ);
virtual
void BuildPhysicsTable(const G4ParticleDefinition&)
{}
virtual
void DumpPhysicsTable(const G4ParticleDefinition&)
{G4cout << "G4NeutronInelasticCrossSection: uses formula"<<endl;}
};
#endif
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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.hh,v 1.1 1999/01/07 16:11:32 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VCrossSectionDataSet.hh,v 1.1.10.1 1999/12/07 20:51:28 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// GEANT4 physics abstract class: G4VCrossSectionData -- header file
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4CrossSectionDataStore.cc,v 1.1 1999/01/07 16:11:33 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4CrossSectionDataStore.cc,v 1.1.10.1 1999/12/07 20:51:28 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// GEANT4 physics class: G4CrossSectionDataStore
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4HadronCaptureDataSet.cc,v 1.1 1999/01/07 16:11:33 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4HadronCaptureDataSet.cc,v 1.1.10.1 1999/12/07 20:51:29 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// G4 Physics class: HadronCaptureDataSet for cross sections
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4HadronCrossSections.cc,v 1.1 1999/01/07 16:11:33 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4HadronCrossSections.cc,v 1.1.10.1 1999/12/07 20:51:29 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// G4 Hadron Physics class G4HadronCrossSections
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4HadronElasticDataSet.cc,v 1.1 1999/01/07 16:11:34 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4HadronElasticDataSet.cc,v 1.1.10.1 1999/12/07 20:51:29 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// G4 Physics class: HadronElasticDataSet for cross sections
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4HadronFissionDataSet.cc,v 1.1 1999/01/07 16:11:34 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4HadronFissionDataSet.cc,v 1.1.10.1 1999/12/07 20:51:29 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// G4 Physics class: HadronFissionDataSet for cross sections
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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: G4HadronInelasticDataSet.cc,v 1.1 1999/01/07 16:11:34 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4HadronInelasticDataSet.cc,v 1.1.10.1 1999/12/07 20:51:30 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// G4 Physics class: HadronInelasticDataSet for cross sections
@@ -0,0 +1,40 @@
// By JPW, working, but to be cleaned up. @@@
#include "G4NeutronInelasticCrossSection.hh"
#include "globals.hh"
G4double G4NeutronInelasticCrossSection::
GetCrossSection(const G4DynamicParticle* aPart, const G4Element* anEle)
{
G4double atomicNumber = anEle->GetN();
G4double nOfProtons = anEle->GetZ();
return GetCrossSection(aPart->GetKineticEnergy(), atomicNumber, nOfProtons);
}
G4double G4NeutronInelasticCrossSection::
GetCrossSection(G4double anEnergy, G4double atomicNumber, G4double nOfProtons)
{
G4double kineticEnergy = log10(anEnergy/MeV);
G4double nOfNeutrons = atomicNumber-nOfProtons;
const G4double p1=1.3773;
const G4double p2=1.+10./atomicNumber-0.0006*atomicNumber;
const G4double p3=0.6+13./atomicNumber-0.0005*atomicNumber;
const G4double p4=7.2449-0.018242*atomicNumber;
const G4double p5=1.64-1.8/atomicNumber-0.0005*atomicNumber;
const G4double p6=1.+200./atomicNumber+0.02*atomicNumber;
const G4double p7=(atomicNumber-70.)*(atomicNumber-200.)/11000.;
double part1 = pi*(p1*p1)*log(nOfNeutrons);
double part2 = 1.+ pow(atomicNumber, 1./3.) - p2*(1.-1./pow(atomicNumber, 1./3.));
double firstexp = -p4*(kineticEnergy-p5);
double first=1.+exp(firstexp);
double corr = 1.+p3*(1.-1./first);
double secondexp = -p6*(kineticEnergy-p7);
double second=1.+exp(secondexp);
double corr2 =1./second;
double xsec = corr*corr2*part1*part2*10.*millibarn;
return xsec;
}
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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.1 1999/01/07 16:11:34 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4VCrossSectionDataSet.cc,v 1.1.10.1 1999/12/07 20:51:30 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// GEANT4 physics abstract class: G4VCrossSectionDataSet