Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4CrossSectionInelastic Class Reference

#include <G4CrossSectionInelastic.hh>

+ Inheritance diagram for G4CrossSectionInelastic:

Public Member Functions

 G4CrossSectionInelastic (G4VComponentCrossSection *, G4int zmin=1, G4int zmax=256, G4double Emin=0.0, G4double Emax=DBL_MAX)
 
virtual ~G4CrossSectionInelastic ()
 
virtual G4bool IsElementApplicable (const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
 
virtual G4double GetElementCrossSection (const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void DumpPhysicsTable (const G4ParticleDefinition &)
 
virtual void CrossSectionDescription (std::ostream &) const
 
- Public Member Functions inherited from G4VCrossSectionDataSet
 G4VCrossSectionDataSet (const G4String &nam="")
 
virtual ~G4VCrossSectionDataSet ()
 
virtual G4bool IsElementApplicable (const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr)
 
virtual G4bool IsIsoApplicable (const G4DynamicParticle *, G4int Z, G4int A, const G4Element *elm=nullptr, const G4Material *mat=nullptr)
 
G4double GetCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=nullptr)
 
G4double ComputeCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=nullptr)
 
virtual G4double ComputeCrossSectionPerElement (G4double kinEnergy, G4double loge, const G4ParticleDefinition *, const G4Element *, const G4Material *mat=nullptr)
 
virtual G4double GetElementCrossSection (const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr)
 
virtual G4double GetIsoCrossSection (const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=nullptr, const G4Element *elm=nullptr, const G4Material *mat=nullptr)
 
virtual G4double ComputeIsoCrossSection (G4double kinEnergy, G4double loge, const G4ParticleDefinition *, G4int Z, G4int A, const G4Isotope *iso=nullptr, const G4Element *elm=nullptr, const G4Material *mat=nullptr)
 
virtual const G4IsotopeSelectIsotope (const G4Element *, G4double kinEnergy, G4double logE)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void DumpPhysicsTable (const G4ParticleDefinition &)
 
virtual void CrossSectionDescription (std::ostream &) const
 
virtual void SetVerboseLevel (G4int value)
 
G4double GetMinKinEnergy () const
 
void SetMinKinEnergy (G4double value)
 
G4double GetMaxKinEnergy () const
 
void SetMaxKinEnergy (G4double value)
 
bool ForAllAtomsAndEnergies () const
 
void SetForAllAtomsAndEnergies (G4bool val)
 
const G4StringGetName () const
 
void SetName (const G4String &nam)
 
G4VCrossSectionDataSetoperator= (const G4VCrossSectionDataSet &right)=delete
 
 G4VCrossSectionDataSet (const G4VCrossSectionDataSet &)=delete
 

Additional Inherited Members

- Protected Attributes inherited from G4VCrossSectionDataSet
G4int verboseLevel
 
G4String name
 

Detailed Description

Definition at line 60 of file G4CrossSectionInelastic.hh.

Constructor & Destructor Documentation

◆ G4CrossSectionInelastic()

G4CrossSectionInelastic::G4CrossSectionInelastic ( G4VComponentCrossSection c,
G4int  zmin = 1,
G4int  zmax = 256,
G4double  Emin = 0.0,
G4double  Emax = DBL_MAX 
)

Definition at line 54 of file G4CrossSectionInelastic.cc.

57 : G4VCrossSectionDataSet(c->GetName()), component(c),
58 Zmin(zmin),Zmax(zmax)
59{
61 SetMinKinEnergy(Emin);
62 SetMaxKinEnergy(Emax);
63}
static G4NistManager * Instance()
const G4String & GetName() const
void SetMaxKinEnergy(G4double value)
void SetMinKinEnergy(G4double value)

◆ ~G4CrossSectionInelastic()

G4CrossSectionInelastic::~G4CrossSectionInelastic ( )
virtual

Definition at line 65 of file G4CrossSectionInelastic.cc.

66{}

Member Function Documentation

◆ BuildPhysicsTable()

void G4CrossSectionInelastic::BuildPhysicsTable ( const G4ParticleDefinition p)
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 86 of file G4CrossSectionInelastic.cc.

87{
88 component->BuildPhysicsTable(p);
89 // For ions, the max energy of applicability of the cross sections must scale
90 // with the absolute baryonic number; however, the cross sections objects are
91 // often shared between the different types of ions (d, t, He3, alpha, and
92 // genericIon) therefore we scale by Zmax - which is safely larger than the
93 // number of nucleons of the heaviest nuclides.
94 G4int fact = (std::abs(p.GetBaryonNumber()) > 1 ||
95 p.GetParticleName() == "GenericIon") ? Zmax : 1;
96 SetMaxKinEnergy(G4HadronicParameters::Instance()->GetMaxEnergy() * fact);
97}
int G4int
Definition: G4Types.hh:85
static G4HadronicParameters * Instance()
const G4String & GetParticleName() const
virtual void BuildPhysicsTable(const G4ParticleDefinition &)

◆ CrossSectionDescription()

void G4CrossSectionInelastic::CrossSectionDescription ( std::ostream &  outFile) const
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 105 of file G4CrossSectionInelastic.cc.

106{
107 component->Description(outFile);
108}
virtual void Description(std::ostream &) const

◆ DumpPhysicsTable()

void G4CrossSectionInelastic::DumpPhysicsTable ( const G4ParticleDefinition p)
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 99 of file G4CrossSectionInelastic.cc.

100{
101 component->DumpPhysicsTable(p);
102}
virtual void DumpPhysicsTable(const G4ParticleDefinition &)

◆ GetElementCrossSection()

G4double G4CrossSectionInelastic::GetElementCrossSection ( const G4DynamicParticle p,
G4int  Z,
const G4Material mat = 0 
)
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 77 of file G4CrossSectionInelastic.cc.

80{
81 return component->GetInelasticElementCrossSection(p->GetDefinition(),
82 p->GetKineticEnergy(),
83 Z, nist->GetAtomicMassAmu(Z));
84}
const G4int Z[17]
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4double GetAtomicMassAmu(const G4String &symb) const
G4double GetInelasticElementCrossSection(const G4ParticleDefinition *, G4double kinEnergy, const G4Element *)

◆ IsElementApplicable()

G4bool G4CrossSectionInelastic::IsElementApplicable ( const G4DynamicParticle p,
G4int  Z,
const G4Material mat = 0 
)
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 68 of file G4CrossSectionInelastic.cc.

70{
72 return
73 (Z >= Zmin && Z <= Zmax && e >= GetMinKinEnergy() && e <= GetMaxKinEnergy());
74}
double G4double
Definition: G4Types.hh:83

The documentation for this class was generated from the following files: