Import Geant4 3.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:55:53 +02:00
parent e7d7193284
commit cfcb558cfe
3050 changed files with 91703 additions and 48310 deletions
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4EnergyRangeManager.hh,v 1.2 1999/12/15 14:52:07 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
// Hadronic Process: Energy Range Manager
// original by H.P. Wellisch
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4HadronInelasticProcess.hh,v 1.2 1999/12/15 14:52:07 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4HadronInelasticProcess.hh,v 1.4 2000/09/20 16:52:36 hpw Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
// Hadronic Inelastic Process class
// The specific particle inelastic processes derive from this class
@@ -43,6 +43,7 @@
{
theCrossSectionDataStore->AddDataSet(new G4HadronInelasticDataSet);
theParticle = aParticle;
aScaleFactor = 1;
// BuildThePhysicsTable();
}
@@ -56,6 +57,8 @@
void BuildThePhysicsTable();
void BiasCrossSectionByFactor(G4double aScale) {aScaleFactor = aScale;}
G4double GetMicroscopicCrossSection(
const G4DynamicParticle *aParticle,
const G4Element *anElement);
@@ -83,6 +86,9 @@
G4CrossSectionDataStore* theCrossSectionDataStore;
G4ParticleDefinition *theParticle;
private:
G4double aScaleFactor;
};
#endif
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4HadronicInteraction.hh,v 1.3 1999/12/15 14:52:07 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// $Id: G4HadronicInteraction.hh,v 1.4 2000/12/14 08:40:43 hpw Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
// Hadronic Interaction abstract base class
// This class is the base class for the model classes.
@@ -19,6 +19,12 @@
// Modified by J.L.Chuma, 05-May-97 to Initialize theBlockedCounter
// Modified by J.L.Chuma, 08-Jul-97 to implement the Nucleus changes
// Adding a registry for memory management of hadronic models, HPW 22-Mar-99
// Class Description
// This is the base class for all hadronic interaction models in geant4.
// If you want to implement a new way of producing a final state, please inherit
// from here.
// Class Description - End
#ifndef G4HadronicInteraction_h
#define G4HadronicInteraction_h 1
@@ -109,8 +115,12 @@
inline void SetVerboseLevel( G4int value )
{ verboseLevel = value; }
public: // With description
// This is the interface to implement for final state production code.
virtual G4VParticleChange *ApplyYourself(
const G4Track &aTrack, G4Nucleus & targetNucleus ) = 0;
public: // Without description
void DeActivateFor( G4Material *aMaterial );
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4HadronicProcess.hh,v 1.5 1999/12/15 14:52:07 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
// This is the top level Hadronic Process class
// The inelastic, elastic, capture, and fission processes
@@ -6,7 +6,7 @@
// and all its terms.
//
// $Id: G4InelasticInteraction.hh,v 1.2 1999/12/15 14:52:07 gunter Exp $
// GEANT4 tag $Name: geant4-02-00 $
// GEANT4 tag $Name: geant4-03-00 $
//
// Hadronic Process: Inelastic Interaction
// This class is an abstract base class, since the pure virtual
@@ -2,6 +2,10 @@
#define G4IsoParticleChange_h
#include "G4Nucleus.hh"
// Class Description
// THis is the class you can retrieve from the hadronic process, that contains
// the isotope production information/
// Class Description - End
class G4IsoParticleChange
{
@@ -14,6 +18,9 @@ public:
void SetMotherNucleus(const G4Nucleus & aTarget) {theTarget = aTarget; }
void SetProducer(const G4String & aProducer) { theProducer = aProducer; }
public:// With description
// This is the information you can retrieve.
G4String GetIsotope() {return theIsotope;}
G4ThreeVector GetProductionPosition() {return thePosition;}
G4double GetProductionTime() {return theProductionTime;}
@@ -5,12 +5,21 @@
#include "G4Track.hh"
#include "G4Nucleus.hh"
// Class Description
// This is the class you inherit from, if you want to implement your special
// isotope production model, based on your production cross-sections.
// Registering it with the corresponding process, the particle flux from the
// transport models will be fed into the production model, to retrieve improved
// isotope production information.
// Class Description - End
class G4VIsotopeProduction
{
public:
public:// With Description
// This is the interface to implement for isotope production models.
virtual G4IsoResult * GetIsotope(const G4Track & aTrack, const G4Nucleus & aNucleus) = 0;
public:// Without Description
G4bool operator == (const G4VIsotopeProduction & aProd)
{
G4bool result = false;