38#ifndef G4ComponentGGHadronNucleusXsc_h
39#define G4ComponentGGHadronNucleusXsc_h 1
140 static const G4double fNeutronBarCorrectionTot[93];
141 static const G4double fNeutronBarCorrectionIn[93];
143 static const G4double fProtonBarCorrectionTot[93];
144 static const G4double fProtonBarCorrectionIn[93];
146 static const G4double fPionPlusBarCorrectionTot[93];
147 static const G4double fPionPlusBarCorrectionIn[93];
149 static const G4double fPionMinusBarCorrectionTot[93];
150 static const G4double fPionMinusBarCorrectionIn[93];
152 G4double fTotalXsc, fElasticXsc, fInelasticXsc, fProductionXsc, fDiffractionXsc;
207 return fInelasticXsc;
219 G4int z = std::min(92, std::max(ZZ, 1));
220 if( theParticle == theProton ) cor = fProtonBarCorrectionTot[z];
221 else if( theParticle == theNeutron) cor = fNeutronBarCorrectionTot[z];
222 else if( theParticle == thePiPlus ) cor = fPionPlusBarCorrectionTot[z];
223 else if( theParticle == thePiMinus) cor = fPionMinusBarCorrectionTot[z];
237 G4int z = std::min(92, std::max(ZZ, 1));
238 if( theParticle == theProton ) cor = fProtonBarCorrectionIn[z];
239 else if( theParticle == theNeutron) cor = fNeutronBarCorrectionIn[z];
240 else if( theParticle == thePiPlus ) cor = fPionPlusBarCorrectionIn[z];
241 else if( theParticle == thePiMinus) cor = fPionMinusBarCorrectionIn[z];
G4double GetHadronNucleonXscPDG(const G4DynamicParticle *, const G4Element *)
G4double GetInelasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A) final
G4double GetHadronNucleonXscNS(const G4DynamicParticle *, const G4Element *)
G4double GetProductionIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A)
G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=nullptr, const G4Element *elm=nullptr, const G4Material *mat=nullptr)
G4double GetElasticGlauberGribovXsc() const
~G4ComponentGGHadronNucleusXsc() final
G4double GetParticleBarCorTot(const G4ParticleDefinition *theParticle, G4int Z)
G4double GetElasticGlauberGribov(const G4DynamicParticle *, G4int Z, G4int A)
G4double GetModelInLog() const
G4double GetHadronNucleonXsc(const G4DynamicParticle *, const G4Element *)
G4double GetHNinelasticXscVU(const G4DynamicParticle *, G4int At, G4int Zt)
G4double GetDiffractionGlauberGribovXsc() const
void Description(std::ostream &) const final
G4double GetInelasticGlauberGribovXsc() const
G4double GetInelasticIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A) final
static const char * Default_Name()
G4double GetTotalIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A) final
G4double GetTotalElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A) final
G4double GetRatioQE(const G4DynamicParticle *, G4int At, G4int Zt)
G4double GetInelasticGlauberGribov(const G4DynamicParticle *, G4int Z, G4int A)
G4double GetElasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A) final
G4double GetRatioSD(const G4DynamicParticle *, G4int At, G4int Zt)
G4double GetProductionGlauberGribovXsc() const
G4double GetParticleBarCorIn(const G4ParticleDefinition *theParticle, G4int Z)
G4ComponentGGHadronNucleusXsc()
void ComputeCrossSections(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A, G4int nL=0)
G4double GetHNinelasticXsc(const G4DynamicParticle *, const G4Element *)
G4double GetAxsc2piR2() const
G4double ComputeQuasiElasticRatio(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A) final
G4double GetElasticIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A) final
G4double GetProductionElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
G4double GetTotalGlauberGribovXsc() const
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const