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"
90 if ( ke_per_N > upperLimit ) { ke_per_N = upperLimit; }
100 G4double Rt = 1.12 * cubicrAt - 0.94 * ( 1.0 / cubicrAt );
101 G4double Rp = 1.12 * cubicrAp - 0.94 * ( 1.0 / cubicrAp );
110 G4double Ecm = calEcmValue (proj_mass, targ_mass, proj_momentum);
112 G4double B = 1.44 * Zt * Zp / r - b * Rt * Rp / ( Rt + Rp );
113 if(Ecm <=
B) {
return xsection; }
115 G4double c = calCeValue ( ke_per_N / MeV );
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 );
127 xsection = xsection * millibarn;
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 );
G4double B(G4double temperature)
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4ThreeVector GetMomentum() const
virtual G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *)
virtual void CrossSectionDescription(std::ostream &) const
virtual G4bool IsElementApplicable(const G4DynamicParticle *aDP, G4int Z, const G4Material *)
virtual ~G4IonsShenCrossSection()
static G4NistManager * Instance()
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double GetPDGCharge() const
G4int GetBaryonNumber() const
static G4Pow * GetInstance()
G4double A13(G4double A) const
G4double Z13(G4int Z) const