Import Geant4 9.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 15:58:43 +02:00
parent 96c8bcd0af
commit b79225fb37
7544 changed files with 245407 additions and 91099 deletions
+18 -1
View File
@@ -1,5 +1,5 @@
-------------------------------------------------------------------
$Id: History,v 1.2 2007/01/07 04:57:36 dennis Exp $
$Id: History,v 1.5 2008/10/02 20:40:16 dennis Exp $
-------------------------------------------------------------------
==========================================================
@@ -16,6 +16,23 @@ code and to keep track of all tags.
* Please list in reverse chronological order (last date on top)
---------------------------------------------------------------
2 Oct 2008 Dennis Wright (hadr-proc-V09-01-02)
----------------------------------------------
- G4HadronCaptureProcess.cc - change subtype from 13 to fCapture
- G4HadronFissionProcess.cc - change subtype from 14 to fFission
- G4HadronElasticProcess.cc - change subtype from 11 to fHadronElastic
1 Sep 2008 Vladimir Ivanchenko (hadr-proc-V09-01-01)
----------------------------------------------------
- G4HadronElasticProcess, G4HadronCaptureProcess,
G4HadronFissionProcess - used PostStepDoIt, DumpPhysicsTable from
the base class G4HadronicProcess
8 Jul 2008 Dennis Wright (hadr-proc-V09-01-00)
----------------------------------------------
- set process sub-type to 11 for G4HadronElasticProcess,
13 for G4HadronCaptureProcess, and 14 for G4HadronFissionProcess
6 Jan 2007 Dennis Wright (hadr-proc-V08-02-00)
----------------------------------------------
- added process names to G4HadronElasticProcess, G4HadronCaptureProcess,
@@ -25,7 +25,7 @@
//
//
// $Id: G4ElectronNuclearProcess.hh,v 1.5 2006/06/29 21:02:17 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
// Class Description:
//
@@ -36,6 +36,7 @@
// 19-MAY-98 FWJ: variant G4HadronCapture process for
// G4CrossSectionDataSet/DataStore class design.
// 29-JUN-98 FWJ: default data set G4HadronCrossSections
// 01-SEP-2008 V.Ivanchenko: use methods from the base class
//
// Class Description
@@ -48,41 +49,17 @@
#define G4HadronCaptureProcess_h 1
#include "globals.hh"
#include "G4Element.hh"
#include "G4ElementVector.hh"
#include "G4VDiscreteProcess.hh"
#include "G4HadronFissionProcess.hh"
#include "G4Gamma.hh"
#include "G4Step.hh"
#include "G4TrackStatus.hh"
#include "G4HadronicProcess.hh"
#include "G4CrossSectionDataStore.hh"
#include "G4HadronCaptureDataSet.hh"
class G4HadronCaptureProcess : public G4HadronicProcess
{
public:
G4HadronCaptureProcess(const G4String& processName ="HadronCapture");
~G4HadronCaptureProcess();
G4HadronCaptureProcess(const G4String& processName ="nCapture");
virtual ~G4HadronCaptureProcess();
G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep)
{
SetDispatch(this);
return G4HadronicProcess::GeneralPostStepDoIt(aTrack, aStep);
}
G4bool IsApplicable(const G4ParticleDefinition& aParticleType);
void DumpPhysicsTable(const G4ParticleDefinition& aParticleType);
private:
G4double GetMicroscopicCrossSection(const G4DynamicParticle* aParticle,
const G4Element* anElement,
G4double aTemp);
virtual G4bool IsApplicable(const G4ParticleDefinition& aParticleType);
};
#endif
@@ -42,6 +42,7 @@
// 14-APR-98 FWJ: variant G4HadronElastic process for
// G4CrossSectionDataSet/DataStore class design.
// 29-JUN-98 FWJ: default data set G4HadronCrossSections
// 01-SEP-2008 V.Ivanchenko: use methods from the base class
//
// Class Description
@@ -55,15 +56,7 @@
#include "globals.hh"
#include "G4HadronicProcess.hh"
#include "G4CrossSectionDataStore.hh"
#include "G4HadronElasticDataSet.hh"
#include "G4Element.hh"
#include "G4ElementVector.hh"
#include "G4VDiscreteProcess.hh"
#include "G4LightMedia.hh"
#include "G4Step.hh"
#include "G4TrackStatus.hh"
class G4HadronElasticProcess : public G4HadronicProcess
{
@@ -71,27 +64,9 @@ public:
G4HadronElasticProcess(const G4String& processName = "HadronElastic");
~G4HadronElasticProcess();
virtual ~G4HadronElasticProcess();
inline
G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep)
{
SetDispatch(this);
return G4HadronicProcess::GeneralPostStepDoIt(aTrack, aStep);
}
G4bool IsApplicable(const G4ParticleDefinition& aParticleType);
void BuildPhysicsTable(const G4ParticleDefinition& aParticleType);
void DumpPhysicsTable(const G4ParticleDefinition& aParticleType);
private:
G4double GetMicroscopicCrossSection(const G4DynamicParticle* aParticle,
const G4Element* anElement,
G4double aTemp);
virtual G4bool IsApplicable(const G4ParticleDefinition& aParticleType);
};
#endif
@@ -34,6 +34,7 @@
// 19-MAY-98 FWJ: variant G4HadronFission process for
// G4CrossSectionDataSet/DataStore class design.
// 29-JUN-98 FWJ: default data set G4HadronCrossSections
// 01-SEP-2008 V.Ivanchenko: use methods from the base class
//
@@ -46,47 +47,18 @@
#define G4HadronFissionProcess_h 1
#include "globals.hh"
#include "G4Element.hh"
#include "G4ElementVector.hh"
#include "G4VDiscreteProcess.hh"
#include "G4Proton.hh"
#include "G4Neutron.hh"
#include "G4Electron.hh"
#include "G4Gamma.hh"
#include "G4Step.hh"
#include "G4TrackStatus.hh"
#include "G4HadronicProcess.hh"
#include "G4CrossSectionDataStore.hh"
#include "G4HadronFissionDataSet.hh"
class G4HadronFissionProcess : public G4HadronicProcess
{
public:
G4HadronFissionProcess(const G4String& processName ="HadronFission");
G4HadronFissionProcess(const G4String& processName ="nFission");
~G4HadronFissionProcess();
virtual ~G4HadronFissionProcess();
G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep)
{
SetDispatch(this);
return G4HadronicProcess::GeneralPostStepDoIt(aTrack, aStep);
}
virtual G4bool IsApplicable(const G4ParticleDefinition& p);
G4bool IsApplicable(const G4ParticleDefinition& )
{
return true;
}
void BuildThePhysicsTable(G4ParticleDefinition& aParticleType);
void DumpPhysicsTable(const G4ParticleDefinition& aParticleType);
private:
G4double GetMicroscopicCrossSection(const G4DynamicParticle* aParticle,
const G4Element* anElement,
G4double aTemp);
};
#endif
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: G4PhotoNuclearProcess.hh,v 1.8 2007/01/07 04:56:01 dennis Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
// Class Description
// Process for photon nuclear inelastic scattering;
@@ -25,7 +25,7 @@
//
//
// $Id: G4ElectronNuclearProcess.cc,v 1.2 2006/06/29 21:03:02 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
#include "G4ElectronNuclearProcess.hh"
@@ -39,49 +39,26 @@
// G4CrossSectionDataSet/DataStore class design.
// 29-JUN-98 FWJ: default data set G4HadronCrossSections
// design re-done removing most of the original parts: JPW 2003.
// 01-SEP-2008 V.Ivanchenko: use methods from the base class
#include "G4HadronCaptureProcess.hh"
#include "G4Neutron.hh"
#include "G4HadronCaptureDataSet.hh"
G4HadronCaptureProcess::G4HadronCaptureProcess(const G4String& processName) :
G4HadronicProcess(processName)
{
G4HadronicProcess::AddDataSet(new G4HadronCaptureDataSet);
SetProcessSubType(fCapture);
G4HadronicProcess::AddDataSet(new G4HadronCaptureDataSet());
}
G4HadronCaptureProcess::~G4HadronCaptureProcess()
{
}
G4double G4HadronCaptureProcess::
GetMicroscopicCrossSection(const G4DynamicParticle* aParticle,
const G4Element* anElement, G4double aTemp)
{
// gives the microscopic cross section in GEANT4 internal units
if (!G4HadronicProcess::GetCrossSectionDataStore()) {
G4Exception("G4HadronCaptureProcess", "007", FatalException,
"G4HadronCaptureProcess: no cross section data Store");
return DBL_MIN;
}
return G4HadronicProcess::GetCrossSectionDataStore()
->GetCrossSection(aParticle, anElement, aTemp);
}
G4bool
G4HadronCaptureProcess::IsApplicable(const G4ParticleDefinition& aParticleType)
{
return (aParticleType == *(G4Neutron::Neutron()));
}
void G4HadronCaptureProcess::
DumpPhysicsTable(const G4ParticleDefinition& aParticleType)
{
if (!G4HadronicProcess::GetCrossSectionDataStore()) {
G4Exception("G4HadronCaptureProcess", "007", FatalException,
"G4HadronCaptureProcess: no cross section data set");
return;
}
G4HadronicProcess::GetCrossSectionDataStore()
->DumpPhysicsTable(aParticleType);
return (&aParticleType == G4Neutron::Neutron());
}
@@ -45,50 +45,25 @@
// G4CrossSectionDataSet/DataStore class design.
// 29-JUN-98 FWJ: default data set G4HadronCrossSections
// design re-done JPW 2003.
// 01-SEP-2008 V.Ivanchenko: use methods from the base class
#include "G4HadronElasticProcess.hh"
#include "G4HadronElasticDataSet.hh"
G4HadronElasticProcess::
G4HadronElasticProcess(const G4String& processName) :
G4HadronicProcess(processName)
G4HadronElasticProcess::G4HadronElasticProcess(const G4String& processName) :
G4HadronicProcess(processName)
{
AddDataSet(new G4HadronElasticDataSet);
SetProcessSubType(fHadronElastic);
AddDataSet(new G4HadronElasticDataSet());
}
G4HadronElasticProcess::~G4HadronElasticProcess()
{
}
void G4HadronElasticProcess::
BuildPhysicsTable(const G4ParticleDefinition& aParticleType)
{
if (!G4HadronicProcess::GetCrossSectionDataStore()) {
return;
}
G4HadronicProcess::GetCrossSectionDataStore()->BuildPhysicsTable(aParticleType);
}
G4double G4HadronElasticProcess::
GetMicroscopicCrossSection(
const G4DynamicParticle* aParticle, const G4Element* anElement, G4double aTemp)
{
// gives the microscopic cross section in GEANT4 internal units
if (!G4HadronicProcess::GetCrossSectionDataStore()) {
G4Exception("G4HadronElasticProcess", "007", FatalException,
"no cross section data Store");
return DBL_MIN;
}
return G4HadronicProcess::GetCrossSectionDataStore()
->GetCrossSection(aParticle, anElement, aTemp);
}
G4bool
G4HadronElasticProcess::
IsApplicable(const G4ParticleDefinition& aParticleType)
G4bool
G4HadronElasticProcess::IsApplicable(const G4ParticleDefinition& aParticleType)
{
return (aParticleType == *(G4PionPlus::PionPlus()) ||
aParticleType == *(G4PionZero::PionZero()) ||
@@ -120,15 +95,3 @@ IsApplicable(const G4ParticleDefinition& aParticleType)
aParticleType == *(G4AntiOmegaMinus::AntiOmegaMinus()));
}
void
G4HadronElasticProcess::
DumpPhysicsTable(const G4ParticleDefinition& aParticleType)
{
if (!G4HadronicProcess::GetCrossSectionDataStore()) {
G4Exception("G4HadronElasticProcess", "111", JustWarning, "G4HadronElasticProcess: no cross section data set");
return;
}
G4HadronicProcess::GetCrossSectionDataStore()->DumpPhysicsTable(aParticleType);
}
@@ -38,62 +38,25 @@
// 19-MAY-98 FWJ: variant G4HadronFission process for
// G4CrossSectionDataSet/DataStore class design.
// 29-JUN-98 FWJ: default data set G4HadronCrossSections
// 01-SEP-2008 V.Ivanchenko: use methods from the base class
//
#include "G4HadronFissionProcess.hh"
#include "G4HadronFissionDataSet.hh"
#include "G4Neutron.hh"
//unsigned
//G4HadronicFissionProcessHashFun(const G4ParticleDefinition& aParticleDefinition)
//{
// return aParticleDefinition.GetParticleName().hash();
//}
G4HadronFissionProcess::
G4HadronFissionProcess(const G4String& processName) :
G4HadronicProcess(processName)
G4HadronFissionProcess::G4HadronFissionProcess(const G4String& processName) :
G4HadronicProcess(processName)
{
AddDataSet(new G4HadronFissionDataSet);
SetProcessSubType(fFission);
AddDataSet(new G4HadronFissionDataSet());
}
G4HadronFissionProcess::~G4HadronFissionProcess()
{
}
void
G4HadronFissionProcess::BuildThePhysicsTable(G4ParticleDefinition& aParticleType)
{
if (!G4HadronicProcess::GetCrossSectionDataStore()) {
G4Exception("G4HadronFissionProcess", "007", FatalException,
"no cross section data set");
return;
}
G4HadronicProcess::GetCrossSectionDataStore()->BuildPhysicsTable(aParticleType);
}
G4double
G4HadronFissionProcess::GetMicroscopicCrossSection(const G4DynamicParticle* aParticle,
const G4Element* anElement, G4double aTemp)
{
// gives the microscopic cross section in GEANT4 internal units
if (!G4HadronicProcess::GetCrossSectionDataStore()) {
G4Exception("G4HadronFissionProcess", "007", FatalException,
"no cross section data Store");
return DBL_MIN;
}
return G4HadronicProcess::GetCrossSectionDataStore()->GetCrossSection(aParticle, anElement, aTemp);
}
void
G4HadronFissionProcess::
DumpPhysicsTable(const G4ParticleDefinition& aParticleType)
{
if (!G4HadronicProcess::GetCrossSectionDataStore()) {
G4Exception("G4HadronFissionProcess", "111", JustWarning,
"no cross section data set");
return;
}
G4HadronicProcess::GetCrossSectionDataStore()->DumpPhysicsTable(aParticleType);
G4bool G4HadronFissionProcess::IsApplicable(const G4ParticleDefinition& p)
{
return (&p == G4Neutron::Neutron());
}
@@ -26,7 +26,7 @@
//
//
// $Id: G4PhotoNuclearProcess.cc,v 1.2 2006/06/29 21:03:54 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
#include "G4PhotoNuclearProcess.hh"