45 upperLimit( 10*GeV ), lowerLimit( 10*MeV ), r0 ( 1.1 )
54 outFile <<
"G4IonsShenCrossSection calculates the total reaction cross\n"
55 <<
"section for nucleus-nucleus scattering using the Shen\n"
56 <<
"parameterization. It is valid for projectiles and targets of\n"
57 <<
"all Z, and projectile energies up to 1 TeV/n. Above 10 GeV/n"
58 <<
"the cross section is constant. Below 10 MeV/n zero cross\n"
89 if ( ke_per_N > upperLimit ) { ke_per_N = upperLimit; }
99 G4double Rt = 1.12 * cubicrAt - 0.94 * ( 1.0 / cubicrAt );
100 G4double Rp = 1.12 * cubicrAp - 0.94 * ( 1.0 / cubicrAp );
109 G4double Ecm = calEcmValue (proj_mass, targ_mass, proj_momentum);
111 G4double B = 1.44 * Zt * Zp / r - b * Rt * Rp / ( Rt + Rp );
112 if(Ecm <= B) {
return xsection; }
114 G4double c = calCeValue ( ke_per_N / MeV );
116 G4double R1 = r0 * (cubicrAt + cubicrAp + 1.85*cubicrAt*cubicrAp/(cubicrAt + cubicrAp) - c);
118 G4double R2 = 1.0 * ( At - 2 * Zt ) * Zp / ( Ap * At );
121 G4double R3 = (0.176 / g4pow->
A13(Ecm)) * cubicrAt * cubicrAp /(cubicrAt + cubicrAp);
125 xsection = 10 * pi * R * R * ( 1 - B / Ecm );
126 xsection = xsection * millibarn;
135 G4double Elab = std::sqrt ( mp * mp + Plab * Plab );
136 G4double Ecm = std::sqrt ( mp * mp + mt * mt + 2 * Elab * mt );
138 G4double KEcm = std::sqrt ( Pcm * Pcm + mp * mp ) - mp;
153 G4double log10_ke = std::log10 ( ke );
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()