45 fTotalXsc(0.0), fElasticXsc(0.0), fInelasticXsc(0.0), fProductionXsc(0.0),
46 fDiffractionXsc(0.0), fEnergy(0.0), fParticle(nullptr), fZ(0), fA(0)
139 G4cout <<
"G4ComponentGGNuclNuclXsc: uses Glauber-Gribov formula" <<
G4endl;
146 outFile <<
"G4ComponentGGNuclNuclXsc calculates total, inelastic and\n"
147 <<
"elastic cross sections for nucleus-nucleus collisions using\n"
148 <<
"the Glauber model with Gribov corrections. It is valid for\n"
149 <<
"all incident energies above 100 keV./n"
150 <<
"For the hydrogen target G4HadronNucleonXsc class is used.\n";
177 if(1 ==
Z && 1 ==
A) {
187 static const G4double cofInelastic = 2.4;
188 static const G4double cofTotal = 2.0;
214 G4double ratio= sigma/nucleusSquare;
219 G4double difratio = ratio/(1.+ratio);
222 G4double xratio= ((pZ*
Z+pN*tN)*ppInXsc + (pZ*tN+pN*
Z)*npInXsc)/nucleusSquare;
247 G4double totEcm = std::sqrt(
pM*
pM + tM*tM + 2.*pElab*tM);
253 G4double ratio = (totTcm <= bC ) ? 0. : 1. - bC/totTcm;
static const G4double inve
G4double G4Log(G4double x)
G4GLOB_DLL std::ostream G4cout
void ComputeCrossSections(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A)
G4double GetElasticGlauberGribovXsc() const
G4double GetDiffractionGlauberGribovXsc() const
G4double GetInelasticGlauberGribovXsc() const
G4double GetProductionGlauberGribovXsc() const
G4double GetTotalGlauberGribovXsc() const
G4double GetTotalElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A) final
G4double ComputeQuasiElasticRatio(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A) final
G4ComponentGGHadronNucleusXsc * fHadrNucl
G4HadronNucleonXsc * fHNXsc
const G4ParticleDefinition * theNeutron
virtual ~G4ComponentGGNuclNuclXsc()
const G4ParticleDefinition * fParticle
const G4ParticleDefinition * theProton
G4double GetRatioQE(const G4DynamicParticle *, G4double At, G4double Zt)
G4double GetElasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A) final
G4double GetRatioSD(const G4DynamicParticle *, G4double At, G4double Zt)
void DumpPhysicsTable(const G4ParticleDefinition &) final
G4double GetInelasticIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A) final
G4ComponentGGNuclNuclXsc()
G4double ComputeCoulombBarier(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A, G4double pR, G4double tR)
G4double GetTotalIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A) final
void Description(std::ostream &) const final
G4double GetElasticIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A) final
void BuildPhysicsTable(const G4ParticleDefinition &) final
void ComputeCrossSections(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A)
G4double GetInelasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A) final
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4double GetInelasticHadronNucleonXsc() const
G4double HadronNucleonXscNS(const G4ParticleDefinition *theParticle, const G4ParticleDefinition *nucleon, G4double ekin)
static G4Neutron * Neutron()
static G4double Radius(G4int Z, G4int A)
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double GetPDGMass() const
G4double GetPDGCharge() const
G4int GetBaryonNumber() const
static G4Proton * Proton()
static constexpr double eplus
static constexpr double proton_mass_c2
static constexpr double fine_structure_const
static constexpr double hbarc
static constexpr double pi
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T min(const T t1, const T t2)
brief Return the smallest of the two arguments