51 fRadiusEff(0.0), fRadiusNN2(0.0),
52 fTotalXsc(0.0), fElasticXsc(0.0), fInelasticXsc(0.0),
53 fAntiHadronNucleonTotXsc(0.0), fAntiHadronNucleonElXsc(0.0),
54 Elab(0.0),
S(0.0), SqrtS(0)
85 G4double xsection, sigmaTotal, sigmaElastic;
87 sigmaTotal = GetAntiHadronNucleonTotCrSc(theParticle,kinEnergy);
88 sigmaElastic = GetAntiHadronNucleonElCrSc(theParticle,kinEnergy);
91 fRadiusNN2=sigmaTotal*sigmaTotal*0.1/(8.*sigmaElastic*
pi) ;
102 if ( (Z==1) && (A==2) ) fRadiusEff = 3.800;
103 if ( (Z==1) && (A==3) ) fRadiusEff = 3.300;
104 if ( (Z==2) && (A==3) ) fRadiusEff = 3.300;
105 if ( (Z==2) && (A==4) ) fRadiusEff = 2.376;
108 if (theParticle == theADeuteron) {
110 if ( (Z==1) && (A==2) ) fRadiusEff = 3.238;
111 if ( (Z==1) && (A==3) ) fRadiusEff = 3.144;
112 if ( (Z==2) && (A==3) ) fRadiusEff = 3.144;
113 if ( (Z==2) && (A==4) ) fRadiusEff = 2.544;
117 if ( (theParticle ==theAHe3) || (theParticle ==theATriton) ) {
119 if ( (Z==1) && (A==2) ) fRadiusEff = 3.144;
120 if ( (Z==1) && (A==3) ) fRadiusEff = 3.075;
121 if ( (Z==2) && (A==3) ) fRadiusEff = 3.075;
122 if ( (Z==2) && (A==4) ) fRadiusEff = 2.589;
126 if (theParticle == theAAlpha) {
128 if ( (Z==1) && (A==2) ) fRadiusEff = 2.544;
129 if ( (Z==1) && (A==3) ) fRadiusEff = 2.589;
130 if ( (Z==2) && (A==3) ) fRadiusEff = 2.589;
131 if ( (Z==2) && (A==4) ) fRadiusEff = 2.241;
134 G4double R2 = fRadiusEff*fRadiusEff;
138 xsection = 2*
pi*REf2*10.*
G4Log(1+(ApAt*sigmaTotal/(2*
pi*REf2*10.)));
140 fTotalXsc = xsection;
153 return GetTotalElementCrossSection(aParticle, kinEnergy, Z, (
G4double) A);
163 G4double inelxsection, sigmaTotal, sigmaElastic;
165 sigmaTotal = GetAntiHadronNucleonTotCrSc(theParticle,kinEnergy);
166 sigmaElastic = GetAntiHadronNucleonElCrSc(theParticle,kinEnergy);
169 fRadiusNN2=sigmaTotal*sigmaTotal*0.1/(8.*sigmaElastic*
pi);
176 fInelasticXsc = (sigmaTotal - sigmaElastic) *
millibarn;
177 return fInelasticXsc;
180 if ( (Z==1) && (A==2) ) fRadiusEff = 3.582;
181 if ( (Z==1) && (A==3) ) fRadiusEff = 3.105;
182 if ( (Z==2) && (A==3) ) fRadiusEff = 3.105;
183 if ( (Z==2) && (A==4) ) fRadiusEff = 2.209;
186 if (theParticle ==theADeuteron) {
188 if ( (Z==1) && (A==2) ) fRadiusEff = 3.169;
189 if ( (Z==1) && (A==3) ) fRadiusEff = 3.066;
190 if ( (Z==2) && (A==3) ) fRadiusEff = 3.066;
191 if ( (Z==2) && (A==4) ) fRadiusEff = 2.498;
195 if ( (theParticle ==theAHe3) || (theParticle ==theATriton) ) {
197 if ( (Z==1) && (A==2) ) fRadiusEff = 3.066;
198 if ( (Z==1) && (A==3) ) fRadiusEff = 2.973;
199 if ( (Z==2) && (A==3) ) fRadiusEff = 2.973;
200 if ( (Z==2) && (A==4) ) fRadiusEff = 2.508;
204 if (theParticle == theAAlpha) {
206 if ( (Z==1) && (A==2) ) fRadiusEff = 2.498;
207 if ( (Z==1) && (A==3) ) fRadiusEff = 2.508;
208 if ( (Z==2) && (A==3) ) fRadiusEff = 2.508;
209 if ( (Z==2) && (A==4) ) fRadiusEff = 2.158;
212 G4double R2 = fRadiusEff*fRadiusEff;
216 inelxsection =
pi*REf2 *10*
G4Log(1+(ApAt*sigmaTotal/(
pi*REf2*10.)));
218 fInelasticXsc = inelxsection;
220 return fInelasticXsc;
231 return GetInelasticElementCrossSection(aParticle, kinEnergy, Z, (
G4double) A);
242 fElasticXsc = GetTotalElementCrossSection(aParticle, kinEnergy, Z, A)-
243 GetInelasticElementCrossSection(aParticle, kinEnergy, Z, A);
244 if (fElasticXsc < 0.) fElasticXsc = 0.;
256 return GetElasticElementCrossSection(aParticle, kinEnergy, Z, (
G4double) A);
269 Energy=Pmass+kinEnergy;
275 Elab = std::sqrt(Mn*Mn + Plab*Plab);
276 S = 2.*Mn*Mn + 2. *Mn*Elab;
277 SqrtS = std::sqrt(
S);
278 B = b0+b2*
G4Log(SqrtS/SqrtS0)*
G4Log(SqrtS/SqrtS0);
280 R0 = std::sqrt(0.40874044*SigAss - B);
291 fAntiHadronNucleonTotXsc = xsection;
293 return fAntiHadronNucleonTotXsc;
328 outFile <<
"The G4ComponentAntiNuclNuclearXS calculates total,\n"
329 <<
"inelastic, elastic cross sections of anti-nucleons and light \n"
330 <<
"anti-nucleus interactions with nuclei using Glauber's approach.\n"
331 <<
"It uses parametrizations of antiproton-proton total and elastic \n"
332 <<
"cross sections and Wood-Saxon distribution of nuclear density.\n"
333 <<
"See details in Phys.Lett. B705 (2011) 235. \n";