Import Geant4 10.5.0.beta source tree
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronicProcess.hh 104121 2017-05-11 13:49:37Z gcosmo $
|
||||
// $Id: G4HadronicProcess.hh 110586 2018-05-31 12:01:42Z gcosmo $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -53,18 +53,18 @@
|
||||
#include "G4EnergyRangeManager.hh"
|
||||
#include "G4Nucleus.hh"
|
||||
#include "G4ReactionProduct.hh"
|
||||
#include <vector>
|
||||
#include "G4VCrossSectionDataSet.hh"
|
||||
#include "G4VLeadingParticleBiasing.hh"
|
||||
|
||||
#include "G4CrossSectionDataStore.hh"
|
||||
#include "G4HadronicProcessType.hh"
|
||||
#include "G4CrossSectionDataStore.hh"
|
||||
#include <vector>
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
class G4Element;
|
||||
class G4ParticleChange;
|
||||
class G4HadronicInteraction;
|
||||
class G4HadronicProcessStore;
|
||||
class G4VCrossSectionDataSet;
|
||||
class G4VLeadingParticleBiasing;
|
||||
|
||||
class G4HadronicProcess : public G4VDiscreteProcess
|
||||
{
|
||||
@@ -76,7 +76,7 @@ public:
|
||||
G4HadronicProcess(const G4String& processName,
|
||||
G4HadronicProcessType subType);
|
||||
|
||||
virtual ~G4HadronicProcess();
|
||||
~G4HadronicProcess() override;
|
||||
|
||||
// register generator of secondaries
|
||||
void RegisterMe(G4HadronicInteraction* a);
|
||||
@@ -94,30 +94,27 @@ public:
|
||||
{ return GetElementCrossSection(part, elm, mat); }
|
||||
|
||||
// generic PostStepDoIt recommended for all derived classes
|
||||
virtual G4VParticleChange* PostStepDoIt(const G4Track& aTrack,
|
||||
const G4Step& aStep);
|
||||
G4VParticleChange* PostStepDoIt(const G4Track& aTrack,
|
||||
const G4Step& aStep) override;
|
||||
|
||||
// initialisation of physics tables and G4HadronicProcessStore
|
||||
virtual void PreparePhysicsTable(const G4ParticleDefinition&);
|
||||
void PreparePhysicsTable(const G4ParticleDefinition&) override;
|
||||
|
||||
// build physics tables and print out the configuration of the process
|
||||
virtual void BuildPhysicsTable(const G4ParticleDefinition&);
|
||||
void BuildPhysicsTable(const G4ParticleDefinition&) override;
|
||||
|
||||
// dump physics tables
|
||||
inline void DumpPhysicsTable(const G4ParticleDefinition& p)
|
||||
{ theCrossSectionDataStore->DumpPhysicsTable(p); }
|
||||
void DumpPhysicsTable(const G4ParticleDefinition& p);
|
||||
|
||||
// add cross section data set
|
||||
inline void AddDataSet(G4VCrossSectionDataSet * aDataSet)
|
||||
{ theCrossSectionDataStore->AddDataSet(aDataSet);}
|
||||
void AddDataSet(G4VCrossSectionDataSet * aDataSet);
|
||||
|
||||
// access to the list of hadronic interactions
|
||||
std::vector<G4HadronicInteraction*>& GetHadronicInteractionList()
|
||||
{ return theEnergyRangeManager.GetHadronicInteractionList(); }
|
||||
std::vector<G4HadronicInteraction*>& GetHadronicInteractionList();
|
||||
|
||||
// get inverse cross section per volume
|
||||
G4double GetMeanFreePath(const G4Track &aTrack, G4double,
|
||||
G4ForceCondition *);
|
||||
G4ForceCondition *) override;
|
||||
|
||||
// access to the target nucleus
|
||||
inline const G4Nucleus* GetTargetNucleus() const
|
||||
@@ -127,15 +124,15 @@ public:
|
||||
inline const G4Isotope* GetTargetIsotope()
|
||||
{ return targetNucleus.GetIsotope(); }
|
||||
|
||||
virtual void ProcessDescription(std::ostream& outFile) const;
|
||||
void ProcessDescription(std::ostream& outFile) const override;
|
||||
|
||||
protected:
|
||||
|
||||
// generic method to choose secondary generator
|
||||
// recommended for all derived classes
|
||||
inline G4HadronicInteraction* ChooseHadronicInteraction(
|
||||
const G4HadProjectile & aHadProjectile, G4Nucleus & aTargetNucleus,
|
||||
G4Material* aMaterial, G4Element* anElement)
|
||||
const G4HadProjectile & aHadProjectile, G4Nucleus& aTargetNucleus,
|
||||
const G4Material* aMaterial, const G4Element* anElement)
|
||||
{ return theEnergyRangeManager.GetHadronicInteraction(aHadProjectile,
|
||||
aTargetNucleus,
|
||||
aMaterial,anElement);
|
||||
@@ -147,7 +144,11 @@ protected:
|
||||
|
||||
public:
|
||||
|
||||
// scale cross section
|
||||
void BiasCrossSectionByFactor(G4double aScale);
|
||||
void MultiplyCrossSectionBy(G4double factor);
|
||||
inline G4double CrossSectionFactor() const
|
||||
{ return aScaleFactor; }
|
||||
|
||||
// Integral option
|
||||
inline void SetIntegral(G4bool val)
|
||||
@@ -170,9 +171,6 @@ public:
|
||||
inline G4CrossSectionDataStore* GetCrossSectionDataStore()
|
||||
{return theCrossSectionDataStore;}
|
||||
|
||||
inline void MultiplyCrossSectionBy(G4double factor)
|
||||
{ aScaleFactor = factor; }
|
||||
|
||||
protected:
|
||||
|
||||
void DumpState(const G4Track&, const G4String&, G4ExceptionDescription&);
|
||||
@@ -216,6 +214,8 @@ protected:
|
||||
|
||||
G4ParticleChange* theTotalResult;
|
||||
|
||||
G4double fWeight;
|
||||
|
||||
G4int epReportLevel;
|
||||
|
||||
private:
|
||||
@@ -244,7 +244,7 @@ private:
|
||||
std::pair<G4double, G4double> epCheckLevels;
|
||||
G4bool levelsSetByProcess;
|
||||
|
||||
std::vector<G4VLeadingParticleBiasing *> theBias;
|
||||
std::vector<G4VLeadingParticleBiasing*> theBias;
|
||||
|
||||
G4double theInitialNumberOfInteractionLength;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user