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
@@ -24,84 +24,37 @@
// ********************************************************************
//
//
//
// Hadronic Inelastic Process Class
// J.L. Chuma, TRIUMF, 24-Mar-1997
// Last modified: 27-Mar-1997
// J.P. Wellisch: Bug hunting, 23-Apr-97
// Modified by J.L.Chuma 8-Jul-97 to eliminate possible division by zero for sigma
// Hadronic Inelastic Process Class
// J.L. Chuma, TRIUMF, 24-Mar-1997
// Last modified: 27-Mar-1997
// J.P. Wellisch: Bug hunting, 23-Apr-97
// Modified by J.L.Chuma 8-Jul-97 to eliminate possible division by zero for sigma
//
// 14-APR-98 F.W.Jones: variant G4HadronInelastic process for
// G4CrossSectionDataSet/DataStore class design.
//
// 17-JUN-98 F.W.Jones: removed extraneous code causing core dump.
// 01-SEP-2008 V.Ivanchenko: use methods from the base class
//
#include "G4HadronInelasticProcess.hh"
#include "G4HadronInelasticDataSet.hh"
#include "G4GenericIon.hh"
#include "G4ProcessManager.hh"
#include "G4ProcessVector.hh"
#include "G4HadronicException.hh"
#include "G4ParticleDefinition.hh"
void G4HadronInelasticProcess::BuildThePhysicsTable()
{
if (!G4HadronicProcess::GetCrossSectionDataStore()) {
return;
}
G4HadronicProcess::GetCrossSectionDataStore()->BuildPhysicsTable(*theParticle);
}
G4HadronInelasticProcess::G4HadronInelasticProcess(
const G4String &processName,
G4ParticleDefinition *aParticle ) :
G4HadronicProcess( processName )
{
G4HadronicProcess::AddDataSet(new G4HadronInelasticDataSet);
theParticle = aParticle;
}
G4HadronInelasticProcess::G4HadronInelasticProcess(const G4String& processName,
G4ParticleDefinition* aParticle):
G4HadronicProcess(processName)
{
SetProcessSubType(fHadronInelastic);
AddDataSet(new G4HadronInelasticDataSet());
theParticle = aParticle;
}
G4HadronInelasticProcess::~G4HadronInelasticProcess() { }
G4HadronInelasticProcess::~G4HadronInelasticProcess()
{}
G4VParticleChange *G4HadronInelasticProcess::
PostStepDoIt(const G4Track &aTrack, const G4Step &aStep)
{
if(0==GetLastCrossSection()&&!getenv("DebugNeutronHP"))
{
G4cerr << "G4HadronInelasticProcess: called for final state, while cross-section was zero"<<G4endl;
G4cerr << " Returning empty particle change...."<<G4endl;
G4double dummy=0;
G4ForceCondition condition;
G4double it = GetMeanFreePath(aTrack, dummy, &condition);
G4cerr << " current MeanFreePath is "<<it<<G4endl;
theParticleChange.Initialize(aTrack);
return &theParticleChange;
}
SetDispatch( this );
return G4HadronicProcess::GeneralPostStepDoIt( aTrack, aStep );
}
G4bool G4HadronInelasticProcess::
IsApplicable(const G4ParticleDefinition& aP)
{
return theParticle == &aP || theParticle == G4GenericIon::GenericIon();
}
G4double G4HadronInelasticProcess::GetMicroscopicCrossSection(
const G4DynamicParticle *aParticle,
const G4Element *anElement,
G4double aTemp)
{
// returns the microscopic cross section in GEANT4 internal units
if (!G4HadronicProcess::GetCrossSectionDataStore())
{
throw G4HadronicException(__FILE__, __LINE__,
"G4HadronInelasticProcess::GetMicroscopicCrossSection: "
"no CrossSectionDataStore");
return DBL_MIN;
}
return G4HadronicProcess::GetCrossSectionDataStore()->GetCrossSection(aParticle, anElement, aTemp);
}
/* end of file */
G4bool G4HadronInelasticProcess::IsApplicable(const G4ParticleDefinition& aP)
{
return theParticle == &aP || theParticle == G4GenericIon::GenericIon();
}