61 FTFhNcmsEnergy( 0.0 ),
63 FTFXtotal( 0.0 ), FTFXelastic( 0.0 ), FTFXinelastic( 0.0 ), FTFXannihilation( 0.0 ),
64 ProbabilityOfAnnihilation( 0.0 ), ProbabilityOfElasticScatt( 0.0 ),
65 RadiusOfHNinteractions2( 0.0 ), FTFSlope( 0.0 ),
66 AvaragePt2ofElasticScattering( 0.0 ), FTFGamma0( 0.0 ),
67 DeltaProbAtQuarkExchange( 0.0 ), ProbOfSameQuarkExchange( 0.0 ),
68 ProjMinDiffMass( 0.0 ), ProjMinNonDiffMass( 0.0 ), ProbLogDistrPrD(0.0),
69 TarMinDiffMass( 0.0 ), TarMinNonDiffMass( 0.0 ),
70 AveragePt2( 0.0 ), ProbLogDistr( 0.0 ),
72 MaxNumberOfCollisions( 0.0 ), ProbOfInelInteraction( 0.0 ),
73 CofNuclearDestructionPr( 0.0 ), CofNuclearDestruction( 0.0 ),
74 R2ofNuclearDestruction( 0.0 ), ExcitationEnergyPerWoundedNucleon( 0.0 ),
75 DofNuclearDestruction( 0.0 ), Pt2ofNuclearDestruction( 0.0 ), MaxPt2ofNuclearDestruction( 0.0 )
77 for (
G4int i = 0; i < 4; i++ ) {
78 for (
G4int j = 0; j < 7; j++ ) {
92 G4ThreadLocal bool G4FTFParameters::chipsComponentXSisInitialized =
false;
100 FTFhNcmsEnergy( 0.0 ),
102 FTFXtotal( 0.0 ), FTFXelastic( 0.0 ), FTFXinelastic( 0.0 ), FTFXannihilation( 0.0 ),
103 ProbabilityOfAnnihilation( 0.0 ), ProbabilityOfElasticScatt( 0.0 ),
104 RadiusOfHNinteractions2( 0.0 ), FTFSlope( 0.0 ),
105 AvaragePt2ofElasticScattering( 0.0 ), FTFGamma0( 0.0 ),
106 DeltaProbAtQuarkExchange( 0.0 ), ProbOfSameQuarkExchange( 0.0 ),
107 ProjMinDiffMass( 0.0 ), ProjMinNonDiffMass( 0.0 ), ProbLogDistrPrD(0.0),
108 TarMinDiffMass( 0.0 ), TarMinNonDiffMass( 0.0 ),
109 AveragePt2( 0.0 ), ProbLogDistr( 0.0 ),
111 MaxNumberOfCollisions( 0.0 ), ProbOfInelInteraction( 0.0 ),
112 CofNuclearDestructionPr( 0.0 ), CofNuclearDestruction( 0.0 ),
113 R2ofNuclearDestruction( 0.0 ), ExcitationEnergyPerWoundedNucleon( 0.0 ),
114 DofNuclearDestruction( 0.0 ), Pt2ofNuclearDestruction( 0.0 ), MaxPt2ofNuclearDestruction( 0.0 )
116 for (
G4int i = 0; i < 4; i++ ) {
117 for (
G4int j = 0; j < 7; j++ ) {
123 G4int ProjectileabsPDGcode = std::abs( ProjectilePDGcode );
125 G4double ProjectileMass2 = ProjectileMass * ProjectileMass;
127 G4int ProjectileBaryonNumber( 0 ), AbsProjectileBaryonNumber( 0 ), AbsProjectileCharge( 0 );
128 G4bool ProjectileIsNucleus =
false;
131 ProjectileIsNucleus =
true;
133 AbsProjectileBaryonNumber = std::abs( ProjectileBaryonNumber );
135 if ( ProjectileBaryonNumber > 1 ) {
136 ProjectilePDGcode = 2212; ProjectileabsPDGcode = 2212;
138 ProjectilePDGcode = -2212; ProjectileabsPDGcode = 2212;
141 ProjectileMass2 =
sqr( ProjectileMass );
145 G4double TargetMass2 = TargetMass * TargetMass;
148 G4double Elab = std::sqrt( Plab*Plab + ProjectileMass2 );
149 G4double KineticEnergy = Elab - ProjectileMass;
151 G4double S = ProjectileMass2 + TargetMass2 + 2.0*TargetMass*Elab;
153 #ifdef debugFTFparams
154 G4cout <<
"--------- FTF Parameters --------------" <<
G4endl <<
"Proj Plab "
155 << ProjectilePDGcode <<
" " << Plab <<
G4endl <<
"Mass KinE " << ProjectileMass
156 <<
" " << KineticEnergy <<
G4endl <<
" A Z " << theA <<
" " << theZ <<
G4endl;
159 G4double Ylab, Xtotal, Xelastic, Xannihilation;
160 G4int NumberOfTargetNucleons;
162 Ylab = 0.5 *
G4Log( (Elab + Plab)/(Elab - Plab) );
167 #ifdef debugFTFparams
171 TargetMass /=
GeV; TargetMass2 /= (
GeV*
GeV);
172 ProjectileMass /=
GeV; ProjectileMass2 /= (
GeV*
GeV);
178 if ( ! chipsComponentXSisInitialized ) {
179 chipsComponentXSisInitialized =
true;
188 G4int NumberOfTargetProtons = theZ;
189 G4int NumberOfTargetNeutrons = theA - theZ;
190 NumberOfTargetNucleons = NumberOfTargetProtons + NumberOfTargetNeutrons;
192 if ( ProjectilePDGcode == 2212 || ProjectilePDGcode == 2112 ) {
201 #ifdef debugFTFparams
206 if ( ! ProjectileIsNucleus ) {
207 Xtotal = ( NumberOfTargetProtons * XtotPP + NumberOfTargetNeutrons * XtotPN ) /
208 NumberOfTargetNucleons;
209 Xelastic = ( NumberOfTargetProtons * XelPP + NumberOfTargetNeutrons * XelPN ) /
210 NumberOfTargetNucleons;
213 AbsProjectileCharge * NumberOfTargetProtons * XtotPP +
214 ( AbsProjectileBaryonNumber - AbsProjectileCharge ) *
215 NumberOfTargetNeutrons * XtotPP
217 ( AbsProjectileCharge * NumberOfTargetNeutrons +
218 ( AbsProjectileBaryonNumber - AbsProjectileCharge ) *
219 NumberOfTargetProtons ) * XtotPN
220 ) / ( AbsProjectileBaryonNumber * NumberOfTargetNucleons );
222 AbsProjectileCharge * NumberOfTargetProtons * XelPP +
223 ( AbsProjectileBaryonNumber - AbsProjectileCharge ) *
224 NumberOfTargetNeutrons * XelPP
226 ( AbsProjectileCharge * NumberOfTargetNeutrons +
227 ( AbsProjectileBaryonNumber - AbsProjectileCharge ) *
228 NumberOfTargetProtons ) * XelPN
229 ) / ( AbsProjectileBaryonNumber * NumberOfTargetNucleons );
236 }
else if ( ProjectilePDGcode < -1000 ) {
238 G4double X_a( 0.0 ), X_b( 0.0 ), X_c( 0.0 ), X_d( 0.0 );
239 G4double MesonProdThreshold = ProjectileMass + TargetMass +
240 ( 2.0 * 0.14 + 0.016 );
242 if ( PlabPerParticle < 40.0*
MeV ) {
251 G4double Xasmpt = 36.04 + 0.304*LogS*LogS;
252 LogS =
G4Log( SqrtS / 20.74 );
253 G4double Basmpt = 11.92 + 0.3036*LogS*LogS;
254 G4double R0 = std::sqrt( 0.40874044*Xasmpt - Basmpt );
256 G4double FlowF = SqrtS / std::sqrt( ECMSsqr*ECMSsqr + ProjectileMass2*ProjectileMass2 +
257 TargetMass2*TargetMass2 - 2.0*ECMSsqr*ProjectileMass2
258 - 2.0*ECMSsqr*TargetMass2
259 - 2.0*ProjectileMass2*TargetMass2 );
261 Xtotal = Xasmpt * ( 1.0 + 13.55*FlowF/R0/R0/R0*
262 (1.0 - 4.47/SqrtS + 12.38/ECMSsqr - 12.43/SqrtS/ECMSsqr) );
264 Xasmpt = 4.4 + 0.101*LogS*LogS;
265 Xelastic = Xasmpt * ( 1.0 + 59.27*FlowF/R0/R0/R0*
266 (1.0 - 6.95/SqrtS + 23.54/ECMSsqr - 25.34/SqrtS/ECMSsqr ) );
275 if ( SqrtS < MesonProdThreshold ) {
283 X_c = 2.0*FlowF*
sqr( ProjectileMass + TargetMass )/ECMSsqr;
293 G4double Xann_on_P( 0.0), Xann_on_N( 0.0 );
295 if ( ProjectilePDGcode == -2212 ) {
296 Xann_on_P = X_a + X_b*5.0 + X_c*5.0 + X_d*6.0;
297 Xann_on_N = X_a + X_b*4.0 + X_c*4.0 + X_d*4.0;
298 }
else if ( ProjectilePDGcode == -2112 ) {
299 Xann_on_P = X_a + X_b*4.0 + X_c*4.0 + X_d*4.0;
300 Xann_on_N = X_a + X_b*5.0 + X_c*5.0 + X_d*6.0;
301 }
else if ( ProjectilePDGcode == -3122 ) {
302 Xann_on_P = X_a + X_b*3.0 + X_c*3.0 + X_d*2.0;
303 Xann_on_N = X_a + X_b*3.0 + X_c*3.0 + X_d*2.0;
304 }
else if ( ProjectilePDGcode == -3112 ) {
305 Xann_on_P = X_a + X_b*2.0 + X_c*2.0 + X_d*0.0;
306 Xann_on_N = X_a + X_b*4.0 + X_c*4.0 + X_d*2.0;
307 }
else if ( ProjectilePDGcode == -3212 ) {
308 Xann_on_P = X_a + X_b*3.0 + X_c*3.0 + X_d*2.0;
309 Xann_on_N = X_a + X_b*3.0 + X_c*3.0 + X_d*2.0;
310 }
else if ( ProjectilePDGcode == -3222 ) {
311 Xann_on_P = X_a + X_b*4.0 + X_c*4.0 + X_d*2.0;
312 Xann_on_N = X_a + X_b*2.0 + X_c*2.0 + X_d*0.0;
313 }
else if ( ProjectilePDGcode == -3312 ) {
314 Xann_on_P = X_a + X_b*1.0 + X_c*1.0 + X_d*0.0;
315 Xann_on_N = X_a + X_b*2.0 + X_c*2.0 + X_d*0.0;
316 }
else if ( ProjectilePDGcode == -3322 ) {
317 Xann_on_P = X_a + X_b*2.0 + X_c*2.0 + X_d*0.0;
318 Xann_on_N = X_a + X_b*1.0 + X_c*1.0 + X_d*0.0;
319 }
else if ( ProjectilePDGcode == -3334 ) {
320 Xann_on_P = X_a + X_b*0.0 + X_c*0.0 + X_d*0.0;
321 Xann_on_N = X_a + X_b*0.0 + X_c*0.0 + X_d*0.0;
323 G4cout <<
"Unknown anti-baryon for FTF annihilation" <<
G4endl;
328 if ( ! ProjectileIsNucleus ) {
329 Xannihilation = ( NumberOfTargetProtons * Xann_on_P + NumberOfTargetNeutrons * Xann_on_N )
330 / NumberOfTargetNucleons;
333 ( AbsProjectileCharge * NumberOfTargetProtons +
334 ( AbsProjectileBaryonNumber - AbsProjectileCharge ) *
335 NumberOfTargetNeutrons ) * Xann_on_P
337 ( AbsProjectileCharge * NumberOfTargetNeutrons +
338 ( AbsProjectileBaryonNumber - AbsProjectileCharge ) *
339 NumberOfTargetProtons ) * Xann_on_N
340 ) / ( AbsProjectileBaryonNumber * NumberOfTargetNucleons );
344 MesonProdThreshold = ProjectileMass + TargetMass + (0.14 + 0.08);
345 if ( SqrtS > MesonProdThreshold ) {
346 Xftf = 36.0 * ( 1.0 - MesonProdThreshold/SqrtS );
349 Xtotal = Xelastic + Xannihilation + Xftf;
351 #ifdef debugFTFparams
352 G4cout <<
"Plab Xtotal, Xelastic Xinel Xftf " << Plab <<
" " << Xtotal <<
" " << Xelastic
353 <<
" " << Xtotal - Xelastic <<
" " << Xtotal - Xelastic - Xannihilation << G4endl
354 <<
"Plab Xelastic/Xtotal, Xann/Xin " << Plab <<
" " << Xelastic/Xtotal <<
" "
355 << Xannihilation/(Xtotal - Xelastic) << G4endl;
358 }
else if ( ProjectilePDGcode == 211 ) {
365 Xtotal = ( NumberOfTargetProtons * XtotPiP + NumberOfTargetNeutrons * XtotPiN )
366 / NumberOfTargetNucleons;
367 Xelastic = ( NumberOfTargetProtons * XelPiP + NumberOfTargetNeutrons * XelPiN )
368 / NumberOfTargetNucleons;
373 }
else if ( ProjectilePDGcode == -211 ) {
380 Xtotal = ( NumberOfTargetProtons * XtotPiP + NumberOfTargetNeutrons * XtotPiN )
381 / NumberOfTargetNucleons;
382 Xelastic = ( NumberOfTargetProtons * XelPiP + NumberOfTargetNeutrons * XelPiN )
383 / NumberOfTargetNucleons;
388 }
else if ( ProjectilePDGcode == 111 ) {
396 G4double XtotPiP = ( XtotPipP + XtotPimP ) / 2.0;
398 G4double XelPiP = ( XelPipP + XelPimP ) / 2.0;
400 Xtotal = ( NumberOfTargetProtons * XtotPiP + NumberOfTargetNeutrons * XtotPiN )
401 / NumberOfTargetNucleons;
402 Xelastic = ( NumberOfTargetProtons * XelPiP + NumberOfTargetNeutrons * XelPiN )
403 / NumberOfTargetNucleons;
408 }
else if ( ProjectilePDGcode == 321 ) {
415 Xtotal = ( NumberOfTargetProtons * XtotKP + NumberOfTargetNeutrons * XtotKN )
416 / NumberOfTargetNucleons;
417 Xelastic = ( NumberOfTargetProtons * XelKP + NumberOfTargetNeutrons * XelKN )
418 / NumberOfTargetNucleons;
423 }
else if ( ProjectilePDGcode == -321 ) {
430 Xtotal = ( NumberOfTargetProtons * XtotKP + NumberOfTargetNeutrons * XtotKN )
431 / NumberOfTargetNucleons;
432 Xelastic = ( NumberOfTargetProtons * XelKP + NumberOfTargetNeutrons * XelKN )
433 / NumberOfTargetNucleons;
438 }
else if ( ProjectilePDGcode == 311 || ProjectilePDGcode == 130 ||
439 ProjectilePDGcode == 310 ) {
447 G4double XtotKP = ( XtotKpP + XtotKmP ) / 2.0;
449 G4double XelKP = ( XelKpP + XelKmP ) / 2.0;
451 Xtotal = ( NumberOfTargetProtons * XtotKP + NumberOfTargetNeutrons * XtotKN )
452 / NumberOfTargetNucleons;
453 Xelastic = ( NumberOfTargetProtons * XelKP + NumberOfTargetNeutrons * XelKN )
454 / NumberOfTargetNucleons;
467 Xtotal = ( NumberOfTargetProtons * XtotPP + NumberOfTargetNeutrons * XtotPN )
468 / NumberOfTargetNucleons;
469 Xelastic = ( NumberOfTargetProtons * XelPP + NumberOfTargetNeutrons * XelPN )
470 / NumberOfTargetNucleons;
496 if ( Xtotal - Xelastic == 0.0 ) {
508 SetSlope( Xtotal*Xtotal/16.0/
pi/Xelastic/0.3894 );
523 if ( ProjectilePDGcode > 1000 ) {
525 SetParams( 0, 13.71, 1.75, -214.5, 4.25, 0.0, 0.5 , 1.1 );
526 SetParams( 1, 25.0, 1.0, -50.34, 1.5 , 0.0, 0.0 , 1.4 );
528 SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);
529 SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);
530 SetParams( 4, 1.0, 0.0 , -2.01 , 0.5 , 0.0, 0.0 , 1.4 );
532 SetParams( 2, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
533 SetParams( 3, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
534 SetParams( 4, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
537 if ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 ) {
539 SetParams( 2, 0.0, 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
544 if ( NumberOfTargetNucleons > 26 ) {
557 }
else if( ProjectilePDGcode < -1000 ) {
560 SetParams( 0, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , 1000.0 );
561 SetParams( 1, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , 1000.0 );
563 SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);
564 SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);
565 SetParams( 4, 1.0, 0.0 , 0.0, 0.0 , 0.0, 0.0 , 0.93 );
567 SetParams( 2, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
568 SetParams( 3, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
569 SetParams( 4, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
572 if ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 ) {
573 SetParams( 2, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
587 }
else if ( ProjectileabsPDGcode == 211 || ProjectilePDGcode == 111 ) {
590 SetParams( 0, 720.0, 2.5 , 2.3 , 1.0, 0., 1. , 2.7 );
591 SetParams( 1, 12.87, 0.5 , -44.91, 1.0, 0., 0. , 2.5 );
592 SetParams( 2, 0.086, 0. , -0.3 , 0.5, 0., 0. , 2.5 );
593 SetParams( 3, 32.8, 1.0 , -114.5 , 1.5, 0.084, 0. , 2.5 );
594 SetParams( 4, 1.0, 0.0 , -3.49, 0.5, 0.0, 0. , 2.5 );
596 if ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 ) {
597 SetParams( 2, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
610 }
else if ( ProjectileabsPDGcode == 321 || ProjectileabsPDGcode == 311 ||
611 ProjectilePDGcode == 130 || ProjectilePDGcode == 310 ) {
614 SetParams( 0, 60.0 , 2.5 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
615 SetParams( 1, 6.0 , 1.0 , -24.33 , 2.0 , 0.0, 0.0 , 1.40 );
616 SetParams( 2, 2.76, 1.2 , -22.5 , 2.7 ,0.04, 0.0 , 1.40 );
617 SetParams( 3, 1.09, 0.5 , -8.88 , 2. ,0.05, 0.0 , 1.40 );
618 SetParams( 4, 1.0, 0.0 , 0.0 , 0.0 , 0.0, 0.0 , 0.93 );
620 if ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 ) {
621 SetParams( 2, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
637 SetParams( 0, 13.71, 1.75, -214.5, 4.25, 0.0, 0.5 , 1.1 );
638 SetParams( 1, 25.0, 1.0, -50.34, 1.5 , 0.0, 0.0 , 1.4 );
640 SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);
641 SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);
642 SetParams( 4, 1.0, 0.0 , -2.01 , 0.5 , 0.0, 0.0 , 1.4 );
644 SetParams( 2, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
645 SetParams( 3, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
646 SetParams( 4, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
648 if ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 ) {
649 SetParams( 2, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
667 G4double Puubar( 1.0/3.0 ), Pddbar( 1.0/3.0 ), Pssbar( 1.0/3.0 );
672 if ( ProjectileabsPDGcode < 1000 ) {
676 G4Exp( 4.0*(Ylab - 2.1) )/( 1.0 +
G4Exp( 4.0*(Ylab - 2.1) ) ) );
680 ( 1.0 +
G4Exp( 4.0*(Ylab - 2.5) ) ) )*GeV*GeV );
683 }
else if ( ProjectilePDGcode < -1000 ) {
687 G4Exp( 4.0*(Ylab - 2.1) )/( 1.0 +
G4Exp( 4.0*(Ylab - 2.1) ) ) );
691 ( 1.0 +
G4Exp( 4.0*(Ylab - 2.5) ) ) )*GeV*GeV );
707 G4Exp( 4.0*(Ylab - 2.1) )/( 1.0 +
G4Exp( 4.0*(Ylab - 2.1) ) ) );
710 G4Exp( 4.0*(Ylab - 2.1) )/( 1.0 +
G4Exp( 4.0*(Ylab - 2.1) ) ) );
714 ( 1.0 +
G4Exp( 4.0*(Ylab - 2.5) ) ) )*GeV*GeV );
762 if(Prob < 0.) Prob=0.;
768 if(Prob < 0.) Prob=0.;
static G4Pow * GetInstance()
G4double powA(G4double A, G4double y) const
void SetProbLogDistr(const G4double aValue)
void SetCofNuclearDestructionPr(const G4double aValue)
void SetProbLogDistrPrD(const G4double aValue)
G4int GetPDGEncoding() const
void SetTarMinNonDiffMass(const G4double aValue)
void SetDofNuclearDestruction(const G4double aValue)
void SetSlope(const G4double Slope)
G4ChipsComponentXS * FTFxsManager
static G4KaonMinus * KaonMinus()
void SetGamma0(const G4double Gamma0)
G4GLOB_DLL std::ostream G4cout
void SetAveragePt2(const G4double aValue)
void SetElastisCrossSection(const G4double Xelastic)
void SetPt2Kink(const G4double aValue)
void SetRadiusOfHNinteractions2(const G4double Radius2)
void SetMaxNumberOfCollisions(const G4double aValue, const G4double bValue)
void SetExcitationEnergyPerWoundedNucleon(const G4double aValue)
static G4Proton * Proton()
void SetProjMinNonDiffMass(const G4double aValue)
static G4PionPlus * PionPlus()
void SetQuarkProbabilitiesAtGluonSplitUp(const G4double Puubar, const G4double Pddbar, const G4double Pssbar)
virtual G4double GetElasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double N)
static G4Neutron * Neutron()
G4double GetProcProb(const G4int ProcN, const G4double y)
void SetInelasticCrossSection(const G4double Xinelastic)
void SetProbabilityOfElasticScatt(const G4double Xtotal, const G4double Xelastic)
void SetDeltaProbAtQuarkExchange(const G4double aValue)
void SetTotalCrossSection(const G4double Xtotal)
void SetProjMinDiffMass(const G4double aValue)
G4double G4Log(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double GetPDGMass() const
void SetMaxPt2ofNuclearDestruction(const G4double aValue)
void SetParams(const G4int ProcN, const G4double A1, const G4double B1, const G4double A2, const G4double B2, const G4double A3, const G4double Atop, const G4double Ymin)
static G4PionMinus * PionMinus()
G4double ProcParams[5][7]
void SetCofNuclearDestruction(const G4double aValue)
static constexpr double GeV
void SetProbOfSameQuarkExchange(const G4double aValue)
static constexpr double MeV
static constexpr double pi
virtual G4double GetTotalElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double N)
void SetProbabilityOfAnnihilation(const G4double aValue)
static G4KaonPlus * KaonPlus()
static constexpr double fermi
G4double GetPDGCharge() const
void SetPt2ofNuclearDestruction(const G4double aValue)
void SetAvaragePt2ofElasticScattering(const G4double aPt2)
void SetTarMinDiffMass(const G4double aValue)
static constexpr double millibarn
void SetR2ofNuclearDestruction(const G4double aValue)
G4int GetBaryonNumber() const