55 outFile <<
"G4IonsShenCrossSection calculates the total reaction cross\n"
56 <<
"section for nucleus-nucleus scattering using the Shen\n"
57 <<
"parameterization. It is valid for projectiles and targets of\n"
58 <<
"all Z, and projectile energies up to 1 TeV/n. Above 10 GeV/n"
59 <<
"the cross section is constant. Below 10 MeV/n zero cross\n"
100 G4double Rt = 1.12 * cubicrAt - 0.94 * ( 1.0 / cubicrAt );
101 G4double Rp = 1.12 * cubicrAp - 0.94 * ( 1.0 / cubicrAp );
112 G4double B = 1.44 * Zt * Zp / r - b * Rt * Rp / ( Rt + Rp );
113 if(Ecm <= B) {
return xsection; }
117 G4double R1 =
r0 * (cubicrAt + cubicrAp + 1.85*cubicrAt*cubicrAp/(cubicrAt + cubicrAp) - c);
119 G4double R2 = 1.0 * ( At - 2 * Zt ) * Zp / ( Ap * At );
122 G4double R3 = (0.176 / g4pow->
A13(Ecm)) * cubicrAt * cubicrAp /(cubicrAt + cubicrAp);
126 xsection = 10 *
pi * R * R * ( 1 - B / Ecm );
136 G4double Elab = std::sqrt ( mp * mp + Plab * Plab );
137 G4double Ecm = std::sqrt ( mp * mp + mt * mt + 2 * Elab * mt );
139 G4double KEcm = std::sqrt ( Pcm * Pcm + mp * mp ) - mp;
154 G4double log10_ke = std::log10 ( ke );
virtual G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
G4double Z13(G4int Z) const
G4double A13(G4double A) const
static constexpr double MeV
G4double GetPDGCharge() const
static constexpr double millibarn
static G4Pow * GetInstance()
G4ParticleDefinition * GetDefinition() const
G4int GetBaryonNumber() const
virtual G4bool IsElementApplicable(const G4DynamicParticle *aDP, G4int Z, const G4Material *)
double A(double temperature)
static G4double GetNuclearMass(const G4double A, const G4double Z)
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *)
G4ThreeVector GetMomentum() const
static constexpr double eplus
virtual ~G4IonsShenCrossSection()
virtual void CrossSectionDescription(std::ostream &) const
G4double GetKineticEnergy() const
const G4double upperLimit
static constexpr double pi
G4double calEcmValue(const G4double, const G4double, const G4double)
double B(double temperature)
G4double calCeValue(const G4double)
static constexpr double GeV
static G4NistManager * Instance()