74 for (
G4int i = 0; i < 93; ++i) {
140 if(Z > 92) { Z = 92; }
152 G4cout <<
"G4BGGNucleonInelasticXS::GetCrossSection for "
155 <<
" in nucleus Z= " << Z <<
" A= " <<
theA[
Z]
156 <<
" XS(b)= " << cross/
barn
189 G4cout <<
"G4BGGNucleonInelasticXS::GetCrossSection for "
192 <<
" in nucleus Z= " << Z <<
" A= " << A
193 <<
" XS(b)= " << cross/
barn
207 G4cout <<
"### G4BGGNucleonInelasticXS WARNING: is not applicable to "
211 "G4BGGNucleonElasticXS::BuildPhysicsTable is used for wrong particle");
241 G4cout <<
"### G4BGGNucleonInelasticXS::Initialise for "
244 for(
G4int iz=2; iz<93; iz++) {
254 G4cout <<
"Z= " << iz <<
" A= " << A
293 for(
G4int iz=3; iz<93; iz++) {
309 if(kinEnergy <= 0.0) {
return res; }
310 else if (Z <= 1) {
return kinEnergy*kinEnergy; }
320 G4double ff3 = 0.8 + 18./aa - 0.002*aa;
321 res = 1.0 + ff3*(1.0 - (1.0/(1+
G4Exp(-ff1*(elog + ff2)))));
323 ff1 = 8. - 8./aa - 0.008*aa;
324 ff2 = 2.34 - 5.4/aa - 0.0028*aa;
325 res /= (1.0 +
G4Exp(-ff1*(elog + ff2)));
330 G4double p3 = 0.6 + 13./aa - 0.0005*aa;
332 G4double p5 = 1.36 + 1.8/aa + 0.0005*aa;
333 G4double p6 = 1. + 200./aa + 0.02*aa;
334 G4double p7 = 3.0 - (aa-70.)*(aa-200.)/11000.;
339 res = (1.+p3*firstexp/(1. + firstexp))/(1. + secondexp);
349 outFile <<
"The Barashenkov-Glauber-Gribov cross section calculates inelastic\n"
350 <<
"scattering of protons and neutrons from nuclei using the\n"
351 <<
"Barashenkov parameterization below 91 GeV and the Glauber-Gribov\n"
352 <<
"parameterization above 91 GeV. It uses the G4HadronNucleonXsc\n"
353 <<
"cross section component for hydrogen targets, and the\n"
354 <<
"G4ComponentGGHadronNucleusXsc component for other targets.\n";
G4HadronNucleonXsc * fHadron
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
const G4ParticleDefinition * particle
static constexpr double MeV
void SetKineticEnergy(G4double aEnergy)
G4ComponentSAIDTotalXS * fSAID
G4NucleonNuclearCrossSection * fNucleon
G4double CoulombFactor(G4double kinEnergy, G4int Z)
const G4ParticleDefinition * theProton
G4BGGNucleonInelasticXS(const G4ParticleDefinition *)
const G4String & GetParticleName() const
static G4CrossSectionDataSetRegistry * Instance()
static G4Proton * Proton()
G4double GetInelasticGlauberGribov(const G4DynamicParticle *, G4int Z, G4int A)
G4double GetAtomicMassAmu(const G4String &symb) const
virtual G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
G4double G4Log(G4double x)
virtual ~G4BGGNucleonInelasticXS()
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
static constexpr double millibarn
G4ParticleDefinition * GetDefinition() const
G4double GetHadronNucleonXscPDG(const G4DynamicParticle *, const G4ParticleDefinition *)
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
static const char * Default_Name()
double A(double temperature)
G4double GetInelasticHadronNucleonXsc()
void SetForAllAtomsAndEnergies(G4bool val)
virtual G4bool IsIsoApplicable(const G4DynamicParticle *, G4int Z, G4int A, const G4Element *elm=0, const G4Material *mat=0)
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
virtual G4double GetInelasticIsotopeCrossSection(const G4ParticleDefinition *, G4double kinEnergy, G4int, G4int)
virtual void CrossSectionDescription(std::ostream &) const
G4double theCoulombFac[93]
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
static G4Neutron * Neutron()
G4ComponentGGHadronNucleusXsc * fGlauber
G4double fSAIDHighEnergyLimit
static constexpr double barn
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
G4double GetKineticEnergy() const
G4GLOB_DLL std::ostream G4cout
virtual G4double GetElementCrossSection(const G4DynamicParticle *aParticle, G4int Z, const G4Material *mat=0)
G4double theGlauberFac[93]
G4double GetHadronNucleonXscNS(const G4DynamicParticle *, const G4ParticleDefinition *)
static constexpr double GeV
static constexpr double GeV
static G4NistManager * Instance()