43 r0 ( 1.1*fermi ), rc ( 1.3*fermi )
52 outFile <<
"G4IonsKoxCrossSection calculates the total reaction cross\n"
53 <<
"section for nucleus-nucleus scattering using the Kox\n"
54 <<
"parameterization. It is valid for projectiles and targets\n"
55 <<
"of all Z, at projectile energies up to 10 GeV/n. If the\n"
56 <<
"projectile energy is less than 10 MeV/n, a zero cross section\n"
88 G4double Bc = Zt * Zp / ( (rc/fermi) * (cubicrAp+cubicrAt) );
94 G4double Ecm = calEcm ( proj_mass , targ_mass , proj_momentum );
95 if( Ecm <= Bc)
return xsection;
97 G4double Rvol = r0 * ( cubicrAp + cubicrAt );
100 G4double c = calCeValue ( ke_per_N / MeV );
103 G4double Rsurf = r0 * (a*cubicrAp * cubicrAt/(cubicrAp + cubicrAt) - c);
104 G4double D = 5.0 * ( At - 2 * Zt ) * Zp / ( Ap * At );
105 Rsurf = Rsurf + D * fermi;
108 xsection = pi * Rint * Rint * ( 1 - Bc / ( Ecm / MeV ) );
116 G4double Elab = std::sqrt ( mp * mp + Plab * Plab );
117 G4double Ecm = std::sqrt ( mp * mp + mt * mt + 2 * Elab * mt );
119 G4double KEcm = std::sqrt ( Pcm * Pcm + mp * mp ) - mp;
133 G4double log10_ke = std::log10 ( ke );
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4ThreeVector GetMomentum() const
virtual G4bool IsElementApplicable(const G4DynamicParticle *aDP, G4int Z, const G4Material *)
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *)
virtual void CrossSectionDescription(std::ostream &) const
static G4NistManager * Instance()
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double GetPDGCharge() const
G4int GetBaryonNumber() const