39#ifndef G4ComponentGGHadronNucleusXsc_h
40#define G4ComponentGGHadronNucleusXsc_h 1
155 static const G4double fNeutronBarCorrectionTot[93];
156 static const G4double fNeutronBarCorrectionIn[93];
158 static const G4double fProtonBarCorrectionTot[93];
159 static const G4double fProtonBarCorrectionIn[93];
161 static const G4double fPionPlusBarCorrectionTot[93];
162 static const G4double fPionPlusBarCorrectionIn[93];
164 static const G4double fPionMinusBarCorrectionTot[93];
165 static const G4double fPionMinusBarCorrectionIn[93];
167 G4double fTotalXsc, fElasticXsc, fInelasticXsc, fProductionXsc, fDiffractionXsc;
226 return fInelasticXsc;
238 if(Z >= 2 && Z <= 92)
240 if( theParticle == theProton )
return fProtonBarCorrectionTot[Z];
241 else if( theParticle == theNeutron)
return fNeutronBarCorrectionTot[Z];
242 else if( theParticle == thePiPlus )
return fPionPlusBarCorrectionTot[Z];
243 else if( theParticle == thePiMinus)
return fPionMinusBarCorrectionTot[Z];
258 if(Z >= 2 && Z <= 92)
260 if( theParticle == theProton )
return fProtonBarCorrectionIn[Z];
261 else if( theParticle == theNeutron)
return fNeutronBarCorrectionIn[Z];
262 else if( theParticle == thePiPlus )
return fPionPlusBarCorrectionIn[Z];
263 else if( theParticle == thePiMinus)
return fPionMinusBarCorrectionIn[Z];
G4double GetNucleusRadius(const G4DynamicParticle *, const G4Element *)
G4double GetInelasticGlauberGribovXsc()
G4double GetHadronNucleonXscPDG(const G4DynamicParticle *, const G4Element *)
virtual G4double GetInelasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
G4double GetHadronNucleonXscNS(const G4DynamicParticle *, const G4Element *)
void SetEnergyLowerLimit(G4double E)
G4double GetElasticGlauberGribovXsc()
G4double GetParticleBarCorTot(const G4ParticleDefinition *theParticle, G4int Z)
G4double GetElasticGlauberGribov(const G4DynamicParticle *, G4int Z, G4int A)
G4double GetHadronNucleonXsc(const G4DynamicParticle *, const G4Element *)
G4double GetHNinelasticXscVU(const G4DynamicParticle *, G4int At, G4int Zt)
G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
G4double CalcMandelstamS(const G4double, const G4double, const G4double)
virtual G4double GetTotalIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A)
virtual G4double ComputeQuasiElasticRatio(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A)
G4double GetProductionGlauberGribovXsc()
virtual G4double GetElasticIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A)
G4double GetRatioQE(const G4DynamicParticle *, G4int At, G4int Zt)
G4double GetInelasticGlauberGribov(const G4DynamicParticle *, G4int Z, G4int A)
virtual G4double GetTotalElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
G4double GetTotalGlauberGribovXsc()
G4double GetKaonNucleonXscVector(const G4DynamicParticle *, G4int At, G4int Zt)
virtual G4double GetElasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
G4double GetDiffractionGlauberGribovXsc()
G4double GetRatioSD(const G4DynamicParticle *, G4int At, G4int Zt)
virtual void CrossSectionDescription(std::ostream &) const
G4double GetParticleBarCorIn(const G4ParticleDefinition *theParticle, G4int Z)
virtual ~G4ComponentGGHadronNucleusXsc()
G4ComponentGGHadronNucleusXsc()
G4double GetHNinelasticXsc(const G4DynamicParticle *, const G4Element *)
virtual G4double GetInelasticIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A)
G4double CalculateEcmValue(const G4double, const G4double, const G4double)
G4double GetRadiusConst()
G4bool IsIsoApplicable(const G4DynamicParticle *aDP, G4int Z, G4int A, const G4Element *elm=0, const G4Material *mat=0)