49 if( fCHIPScs !=
nullptr )
delete fCHIPScs;
55 outFile <<
"G4ElNucleusSFcs provides the inelastic\n"
56 <<
"cross section for e- and e+ interactions with nuclei according to the structure function approach."
66 return (
Z > 0 && Z < 120 && eKin > thTkin );
79 if( ratio > 0. ) xsc /= ratio;
92 if (
Z == 1 &&
A == 1 )
return 1.51;
93 else if (
Z == 1 &&
A == 2 )
return 0.33;
94 else if (
Z == 1 &&
A == 3 )
return 0.27;
95 else if (
Z == 2 &&
A == 4 )
return 1.81;
96 else if (
Z == 6 &&
A == 12 )
return 2.26;
97 else if (
Z == 7 &&
A == 14 )
return 2.47;
98 else if (
Z == 8 &&
A == 16 )
return 2.61;
99 else if (
Z == 13 &&
A == 27 )
return 2.57;
100 else if (
Z == 14 &&
A == 28 )
return 2.49;
101 else if (
Z == 18 &&
A == 40 )
return 2.72;
102 else if (
Z == 22 &&
A == 48 )
return 2.71;
103 else if (
Z == 26 &&
A == 56 )
return 2.79;
104 else if (
Z == 29 &&
A == 64 )
return 2.78;
105 else if (
Z == 32 &&
A == 73 )
return 2.87;
106 else if (
Z == 42 &&
A == 96 )
return 3.02;
107 else if (
Z == 46 &&
A == 106 )
return 3.02;
108 else if (
Z == 47 &&
A == 108 )
return 2.99;
109 else if (
Z == 48 &&
A == 112 )
return 3.00;
110 else if (
Z == 74 &&
A == 184 )
return 3.44;
111 else if (
Z == 79 &&
A == 200 )
return 3.49;
112 else if (
Z == 82 &&
A == 207 )
return 3.48;
113 else if (
Z == 92 &&
A == 238 )
return 3.88;
116 G4int it(0), iMax(19);
119 for ( it = 0; it < iMax; ++it )
if ( zz <= fZZ[it] )
break;
121 if ( it == 0 )
return fRR[0];
122 else if( it == iMax )
return fRR[iMax-1];
130 if( x1 >= x2 )
return fRR[it];
134 ratio = y1 + ( zz - x1 )*angle;
145 G4double thTkin = 134.9766*CLHEP::MeV;
154const G4double G4ElNucleusSFcs::fZZ[19] =
156 2., 6., 7., 8., 13., 14., 18., 22., 26., 29.,
157 32., 42., 46., 47., 48., 74., 79., 82., 92.
162const G4double G4ElNucleusSFcs::fRR[19] =
164 1.81, 2.26, 2.47, 2.61, 2.57, 2.49, 2.72, 2.71, 2.79, 2.78,
165 2.87, 3.02, 3.02, 2.99, 3., 3.44, 3.49, 3.48, 2.88
#define G4_DECLARE_XS_FACTORY(cross_section)
G4double GetKineticEnergy() const
virtual G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=nullptr, const G4Element *elm=nullptr, const G4Material *mat=nullptr)
virtual void CrossSectionDescription(std::ostream &) const
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *)
G4double ThresholdEnergy()
virtual ~G4ElNucleusSFcs()
G4double GetRatio(G4int Z, G4int A)
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat)