103 HDP.
SetDefault(
"FTF_BARYON_DIFF_DISSO_PROJ",
false );
104 HDP.
SetDefault(
"FTF_BARYON_DIFF_DISSO_TGT",
false );
120 HDP.
SetDefault(
"FTF_BARYON_DELTA_PROB_QEXCHG", 0. );
121 HDP.
SetDefault(
"FTF_BARYON_PROB_SAME_QEXCHG", 0. );
122 HDP.
SetDefault(
"FTF_BARYON_DIFF_M_PROJ", 1.16, 1.16, 3. );
123 HDP.
SetDefault(
"FTF_BARYON_NONDIFF_M_PROJ", 1.16, 1.16, 3. );
124 HDP.
SetDefault(
"FTF_BARYON_DIFF_M_TGT", 1.16, 1.16, 3. );
125 HDP.
SetDefault(
"FTF_BARYON_NONDIFF_M_TGT", 1.16, 1.16, 3. );
126 HDP.
SetDefault(
"FTF_BARYON_AVRG_PT2", 0.3, 0.08, 1. );
135 HDP.
SetDefault(
"FTF_NUCDESTR_P1_PROJ", 1., 0., 1. );
136 HDP.
SetDefault(
"FTF_NUCDESTR_P1_NBRN_PROJ",
false );
137 HDP.
SetDefault(
"FTF_NUCDESTR_P1_TGT", 1., 0., 1. );
138 HDP.
SetDefault(
"FTF_NUCDESTR_P1_ADEP_TGT",
false );
140 HDP.
SetDefault(
"FTF_NUCDESTR_P2_TGT", 4.0, 2., 16. );
141 HDP.
SetDefault(
"FTF_NUCDESTR_P3_TGT", 2.1, 0., 4. );
142 HDP.
SetDefault(
"FTF_PT2_NUCDESTR_P1", 0.035, 0., 0.25 );
143 HDP.
SetDefault(
"FTF_PT2_NUCDESTR_P2", 0.04, 0., 0.25 );
144 HDP.
SetDefault(
"FTF_PT2_NUCDESTR_P3", 4.0, 2., 16. );
145 HDP.
SetDefault(
"FTF_PT2_NUCDESTR_P4", 2.5, 0., 4. );
151 HDP.
SetDefault(
"FTF_BARYON_NUCDESTR_DOF", 0.3, 0.1, 0.4 );
463 for (
G4int i = 0; i < 4; i++ ) {
464 for (
G4int j = 0; j < 7; j++ ) {
482 G4int ProjectileabsPDGcode = std::abs( ProjectilePDGcode );
484 G4double ProjectileMass2 = ProjectileMass * ProjectileMass;
486 G4int ProjectileBaryonNumber( 0 ), AbsProjectileBaryonNumber( 0 ), AbsProjectileCharge( 0 );
487 G4bool ProjectileIsNucleus =
false;
490 ProjectileIsNucleus =
true;
492 AbsProjectileBaryonNumber = std::abs( ProjectileBaryonNumber );
494 if ( ProjectileBaryonNumber > 1 ) {
495 ProjectilePDGcode = 2212; ProjectileabsPDGcode = 2212;
497 ProjectilePDGcode = -2212; ProjectileabsPDGcode = 2212;
500 ProjectileMass2 =
sqr( ProjectileMass );
504 G4double TargetMass2 = TargetMass * TargetMass;
507 G4double Elab = std::sqrt( Plab*Plab + ProjectileMass2 );
508 G4double KineticEnergy = Elab - ProjectileMass;
510 G4double S = ProjectileMass2 + TargetMass2 + 2.0*TargetMass*Elab;
512 #ifdef debugFTFparams
513 G4cout <<
"--------- FTF Parameters --------------" <<
G4endl <<
"Proj Plab "
514 << ProjectilePDGcode <<
" " << Plab <<
G4endl <<
"Mass KinE " << ProjectileMass
515 <<
" " << KineticEnergy <<
G4endl <<
" A Z " << theA <<
" " << theZ <<
G4endl;
518 G4double Ylab, Xtotal, Xelastic, Xannihilation;
519 G4int NumberOfTargetNucleons;
521 Ylab = 0.5 *
G4Log( (Elab + Plab)/(Elab - Plab) );
526 #ifdef debugFTFparams
530 TargetMass /=
GeV; TargetMass2 /= (
GeV*
GeV);
531 ProjectileMass /=
GeV; ProjectileMass2 /= (
GeV*
GeV);
550 G4int NumberOfTargetProtons = theZ;
551 G4int NumberOfTargetNeutrons = theA - theZ;
552 NumberOfTargetNucleons = NumberOfTargetProtons + NumberOfTargetNeutrons;
554 if ( ProjectilePDGcode == 2212 || ProjectilePDGcode == 2112 ) {
563 #ifdef debugFTFparams
568 if ( ! ProjectileIsNucleus ) {
569 Xtotal = ( NumberOfTargetProtons * XtotPP + NumberOfTargetNeutrons * XtotPN ) /
570 NumberOfTargetNucleons;
571 Xelastic = ( NumberOfTargetProtons * XelPP + NumberOfTargetNeutrons * XelPN ) /
572 NumberOfTargetNucleons;
575 AbsProjectileCharge * NumberOfTargetProtons * XtotPP +
576 ( AbsProjectileBaryonNumber - AbsProjectileCharge ) *
577 NumberOfTargetNeutrons * XtotPP
579 ( AbsProjectileCharge * NumberOfTargetNeutrons +
580 ( AbsProjectileBaryonNumber - AbsProjectileCharge ) *
581 NumberOfTargetProtons ) * XtotPN
582 ) / ( AbsProjectileBaryonNumber * NumberOfTargetNucleons );
584 AbsProjectileCharge * NumberOfTargetProtons * XelPP +
585 ( AbsProjectileBaryonNumber - AbsProjectileCharge ) *
586 NumberOfTargetNeutrons * XelPP
588 ( AbsProjectileCharge * NumberOfTargetNeutrons +
589 ( AbsProjectileBaryonNumber - AbsProjectileCharge ) *
590 NumberOfTargetProtons ) * XelPN
591 ) / ( AbsProjectileBaryonNumber * NumberOfTargetNucleons );
598 }
else if ( ProjectilePDGcode < -1000 ) {
600 G4double X_a( 0.0 ), X_b( 0.0 ), X_c( 0.0 ), X_d( 0.0 );
601 G4double MesonProdThreshold = ProjectileMass + TargetMass +
602 ( 2.0 * 0.14 + 0.016 );
604 if ( PlabPerParticle < 40.0*
MeV ) {
613 G4double Xasmpt = 36.04 + 0.304*LogS*LogS;
614 LogS =
G4Log( SqrtS / 20.74 );
615 G4double Basmpt = 11.92 + 0.3036*LogS*LogS;
616 G4double R0 = std::sqrt( 0.40874044*Xasmpt - Basmpt );
618 G4double FlowF = SqrtS / std::sqrt( ECMSsqr*ECMSsqr + ProjectileMass2*ProjectileMass2 +
619 TargetMass2*TargetMass2 - 2.0*ECMSsqr*ProjectileMass2
620 - 2.0*ECMSsqr*TargetMass2
621 - 2.0*ProjectileMass2*TargetMass2 );
623 Xtotal = Xasmpt * ( 1.0 + 13.55*FlowF/R0/R0/R0*
624 (1.0 - 4.47/SqrtS + 12.38/ECMSsqr - 12.43/SqrtS/ECMSsqr) );
626 Xasmpt = 4.4 + 0.101*LogS*LogS;
627 Xelastic = Xasmpt * ( 1.0 + 59.27*FlowF/R0/R0/R0*
628 (1.0 - 6.95/SqrtS + 23.54/ECMSsqr - 25.34/SqrtS/ECMSsqr ) );
637 if ( SqrtS < MesonProdThreshold ) {
645 X_c = 2.0*FlowF*
sqr( ProjectileMass + TargetMass )/ECMSsqr;
655 G4double Xann_on_P( 0.0), Xann_on_N( 0.0 );
657 if ( ProjectilePDGcode == -2212 ) {
658 Xann_on_P = X_a + X_b*5.0 + X_c*5.0 + X_d*6.0;
659 Xann_on_N = X_a + X_b*4.0 + X_c*4.0 + X_d*4.0;
660 }
else if ( ProjectilePDGcode == -2112 ) {
661 Xann_on_P = X_a + X_b*4.0 + X_c*4.0 + X_d*4.0;
662 Xann_on_N = X_a + X_b*5.0 + X_c*5.0 + X_d*6.0;
663 }
else if ( ProjectilePDGcode == -3122 ) {
664 Xann_on_P = X_a + X_b*3.0 + X_c*3.0 + X_d*2.0;
665 Xann_on_N = X_a + X_b*3.0 + X_c*3.0 + X_d*2.0;
666 }
else if ( ProjectilePDGcode == -3112 ) {
667 Xann_on_P = X_a + X_b*2.0 + X_c*2.0 + X_d*0.0;
668 Xann_on_N = X_a + X_b*4.0 + X_c*4.0 + X_d*2.0;
669 }
else if ( ProjectilePDGcode == -3212 ) {
670 Xann_on_P = X_a + X_b*3.0 + X_c*3.0 + X_d*2.0;
671 Xann_on_N = X_a + X_b*3.0 + X_c*3.0 + X_d*2.0;
672 }
else if ( ProjectilePDGcode == -3222 ) {
673 Xann_on_P = X_a + X_b*4.0 + X_c*4.0 + X_d*2.0;
674 Xann_on_N = X_a + X_b*2.0 + X_c*2.0 + X_d*0.0;
675 }
else if ( ProjectilePDGcode == -3312 ) {
676 Xann_on_P = X_a + X_b*1.0 + X_c*1.0 + X_d*0.0;
677 Xann_on_N = X_a + X_b*2.0 + X_c*2.0 + X_d*0.0;
678 }
else if ( ProjectilePDGcode == -3322 ) {
679 Xann_on_P = X_a + X_b*2.0 + X_c*2.0 + X_d*0.0;
680 Xann_on_N = X_a + X_b*1.0 + X_c*1.0 + X_d*0.0;
681 }
else if ( ProjectilePDGcode == -3334 ) {
682 Xann_on_P = X_a + X_b*0.0 + X_c*0.0 + X_d*0.0;
683 Xann_on_N = X_a + X_b*0.0 + X_c*0.0 + X_d*0.0;
685 G4cout <<
"Unknown anti-baryon for FTF annihilation" <<
G4endl;
690 if ( ! ProjectileIsNucleus ) {
691 Xannihilation = ( NumberOfTargetProtons * Xann_on_P + NumberOfTargetNeutrons * Xann_on_N )
692 / NumberOfTargetNucleons;
695 ( AbsProjectileCharge * NumberOfTargetProtons +
696 ( AbsProjectileBaryonNumber - AbsProjectileCharge ) *
697 NumberOfTargetNeutrons ) * Xann_on_P
699 ( AbsProjectileCharge * NumberOfTargetNeutrons +
700 ( AbsProjectileBaryonNumber - AbsProjectileCharge ) *
701 NumberOfTargetProtons ) * Xann_on_N
702 ) / ( AbsProjectileBaryonNumber * NumberOfTargetNucleons );
706 MesonProdThreshold = ProjectileMass + TargetMass + (0.14 + 0.08);
707 if ( SqrtS > MesonProdThreshold ) {
708 Xftf = 36.0 * ( 1.0 - MesonProdThreshold/SqrtS );
711 Xtotal = Xelastic + Xannihilation + Xftf;
713 #ifdef debugFTFparams
714 G4cout <<
"Plab Xtotal, Xelastic Xinel Xftf " << Plab <<
" " << Xtotal <<
" " << Xelastic
715 <<
" " << Xtotal - Xelastic <<
" " << Xtotal - Xelastic - Xannihilation << G4endl
716 <<
"Plab Xelastic/Xtotal, Xann/Xin " << Plab <<
" " << Xelastic/Xtotal <<
" "
717 << Xannihilation/(Xtotal - Xelastic) << G4endl;
720 }
else if ( ProjectilePDGcode == 211 ) {
727 Xtotal = ( NumberOfTargetProtons * XtotPiP + NumberOfTargetNeutrons * XtotPiN )
728 / NumberOfTargetNucleons;
729 Xelastic = ( NumberOfTargetProtons * XelPiP + NumberOfTargetNeutrons * XelPiN )
730 / NumberOfTargetNucleons;
735 }
else if ( ProjectilePDGcode == -211 ) {
742 Xtotal = ( NumberOfTargetProtons * XtotPiP + NumberOfTargetNeutrons * XtotPiN )
743 / NumberOfTargetNucleons;
744 Xelastic = ( NumberOfTargetProtons * XelPiP + NumberOfTargetNeutrons * XelPiN )
745 / NumberOfTargetNucleons;
750 }
else if ( ProjectilePDGcode == 111 ) {
758 G4double XtotPiP = ( XtotPipP + XtotPimP ) / 2.0;
760 G4double XelPiP = ( XelPipP + XelPimP ) / 2.0;
762 Xtotal = ( NumberOfTargetProtons * XtotPiP + NumberOfTargetNeutrons * XtotPiN )
763 / NumberOfTargetNucleons;
764 Xelastic = ( NumberOfTargetProtons * XelPiP + NumberOfTargetNeutrons * XelPiN )
765 / NumberOfTargetNucleons;
770 }
else if ( ProjectilePDGcode == 321 ) {
777 Xtotal = ( NumberOfTargetProtons * XtotKP + NumberOfTargetNeutrons * XtotKN )
778 / NumberOfTargetNucleons;
779 Xelastic = ( NumberOfTargetProtons * XelKP + NumberOfTargetNeutrons * XelKN )
780 / NumberOfTargetNucleons;
785 }
else if ( ProjectilePDGcode == -321 ) {
792 Xtotal = ( NumberOfTargetProtons * XtotKP + NumberOfTargetNeutrons * XtotKN )
793 / NumberOfTargetNucleons;
794 Xelastic = ( NumberOfTargetProtons * XelKP + NumberOfTargetNeutrons * XelKN )
795 / NumberOfTargetNucleons;
800 }
else if ( ProjectilePDGcode == 311 || ProjectilePDGcode == 130 ||
801 ProjectilePDGcode == 310 ) {
809 G4double XtotKP = ( XtotKpP + XtotKmP ) / 2.0;
811 G4double XelKP = ( XelKpP + XelKmP ) / 2.0;
813 Xtotal = ( NumberOfTargetProtons * XtotKP + NumberOfTargetNeutrons * XtotKN )
814 / NumberOfTargetNucleons;
815 Xelastic = ( NumberOfTargetProtons * XelKP + NumberOfTargetNeutrons * XelKN )
816 / NumberOfTargetNucleons;
829 Xtotal = ( NumberOfTargetProtons * XtotPP + NumberOfTargetNeutrons * XtotPN )
830 / NumberOfTargetNucleons;
831 Xelastic = ( NumberOfTargetProtons * XelPP + NumberOfTargetNeutrons * XelPN )
832 / NumberOfTargetNucleons;
864 if ( Xtotal - Xelastic == 0.0 ) {
876 SetSlope( Xtotal*Xtotal/16.0/
pi/Xelastic/0.3894 );
891 if ( ProjectilePDGcode > 1000 ) {
915 SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);
916 SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);
930 SetParams( 2, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
931 SetParams( 3, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
932 SetParams( 4, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
940 if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) {
944 SetParams( 2, 0.0, 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
946 SetParams( 3, 0.0, 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
968 if ( NumberOfTargetNucleons > 26 ) {
982 }
else if( ProjectilePDGcode < -1000 ) {
985 SetParams( 0, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , 1000.0 );
986 SetParams( 1, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , 1000.0 );
988 SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);
989 SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);
990 SetParams( 4, 1.0, 0.0 , 0.0, 0.0 , 0.0, 0.0 , 0.93 );
992 SetParams( 2, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
993 SetParams( 3, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
994 SetParams( 4, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
997 if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) {
998 SetParams( 2, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
999 SetParams( 3, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
1012 }
else if ( ProjectileabsPDGcode == 211 || ProjectilePDGcode == 111 ) {
1015 SetParams( 0, 150.0, 1.8 , -247.3, 2.3, 0., 1. , 2.3 );
1016 SetParams( 1, 5.77, 0.6 , -5.77, 0.8, 0., 0. , 0.0 );
1017 SetParams( 2, 2.27, 0.5 , -98052.0, 4.0, 0., 0. , 3.0 );
1018 SetParams( 3, 7.0, 0.9, -85.28, 1.9, 0.08, 0. , 2.2 );
1019 SetParams( 4, 1.0, 0.0 , -11.02, 1.0, 0.0, 0. , 2.4 );
1021 if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) {
1022 SetParams( 2, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
1023 SetParams( 3, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
1035 }
else if ( ProjectileabsPDGcode == 321 || ProjectileabsPDGcode == 311 ||
1036 ProjectilePDGcode == 130 || ProjectilePDGcode == 310 ) {
1039 SetParams( 0, 60.0 , 2.5 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
1040 SetParams( 1, 6.0 , 1.0 , -24.33 , 2.0 , 0.0, 0.0 , 1.40 );
1041 SetParams( 2, 2.76, 1.2 , -22.5 , 2.7 ,0.04, 0.0 , 1.40 );
1042 SetParams( 3, 1.09, 0.5 , -8.88 , 2. ,0.05, 0.0 , 1.40 );
1043 SetParams( 4, 1.0, 0.0 , 0.0 , 0.0 , 0.0, 0.0 , 0.93 );
1045 if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) {
1046 SetParams( 2, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
1047 SetParams( 3, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
1062 SetParams( 0, 13.71, 1.75, -30.69, 3.0 , 0.0, 1.0 , 0.93 );
1063 SetParams( 1, 25.0, 1.0, -50.34, 1.5 , 0.0, 0.0 , 1.4 );
1065 SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);
1066 SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);
1067 SetParams( 4, 1.0, 0.0 , -2.01 , 0.5 , 0.0, 0.0 , 1.4 );
1069 SetParams( 2, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
1070 SetParams( 3, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
1071 SetParams( 4, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
1073 if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) {
1074 SetParams( 2, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
1075 SetParams( 3, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 );
1092 G4double Puubar( 1.0/3.0 ), Pddbar( 1.0/3.0 ), Pssbar( 1.0/3.0 );
1097 if ( ProjectileabsPDGcode < 1000 ) {
1101 G4Exp( 4.0*(Ylab - 2.1) )/( 1.0 +
G4Exp( 4.0*(Ylab - 2.1) ) ) );
1105 ( 1.0 +
G4Exp( 4.0*(Ylab - 2.5) ) ) )*GeV*GeV );
1108 }
else if ( ProjectilePDGcode < -1000 ) {
1112 G4Exp( 4.0*(Ylab - 2.1) )/( 1.0 +
G4Exp( 4.0*(Ylab - 2.1) ) ) );
1116 ( 1.0 +
G4Exp( 4.0*(Ylab - 2.5) ) ) )*GeV*GeV );
1160 coeff *=
G4double(AbsProjectileBaryonNumber);
1164 coeff /= ( 1.+ exfactor );
1174 coeff *=
G4double(NumberOfTargetNucleons);
1178 coeff /= ( 1.+ exfactor );
1187 coeff /= ( 1. + exfactor );
1251 if(Prob < 0.) Prob=0.;
1257 if(Prob < 0.) Prob=0.;
G4double GetProcProb(const G4int ProcN, const G4double y)
static G4PionMinus * PionMinus()
void SetMaxNumberOfCollisions(const G4double aValue, const G4double bValue)
void SetSlope(const G4double Slope)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
double GetProc0A2() const
double fPt2NuclearDestructP2
void SetCofNuclearDestructionPr(const G4double aValue)
G4double R2ofNuclearDestruction
double fNuclearTgtDestructP3
bool IsProjDiffDissociation() const
double GetProc1B1() const
void SetElastisCrossSection(const G4double Xelastic)
double GetProc1Atop() const
void SetPt2Kink(const G4double aValue)
G4double ProbOfInelInteraction
double fNuclearProjDestructP1
double GetProbOfSameQuarkExchange() const
double fPt2NuclearDestructP1
static constexpr double MeV
void SetProjMinNonDiffMass(const G4double aValue)
double GetProc0B2() const
double fDofNuclearDestruct
double GetProc0A1() const
bool IsTgtDiffDissociation() const
G4double DofNuclearDestruction
double GetPt2NuclearDestructP4() const
double fPt2NuclearDestructP3
virtual G4double GetElasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double N)
void SetCofNuclearDestruction(const G4double aValue)
double fDeltaProbAtQuarkExchange
double GetNuclearProjDestructP1() const
double GetProc4A1() const
void SetProbabilityOfElasticScatt(const G4double Xtotal, const G4double Xelastic)
static G4PionPlus * PionPlus()
double GetPt2NuclearDestructP3() const
bool fTgtDiffDissociation
double GetProc1A1() const
G4double GetPDGCharge() const
static G4ThreadLocal G4ChipsComponentXS * chipsComponentXSinstance
G4bool SetDefault(const std::string name, const G4bool value)
G4double AvaragePt2ofElasticScattering
double GetProc4A3() const
double fR2ofNuclearDestruct
G4double MaxNumberOfCollisions
double GetNuclearTgtDestructP1() const
void InitForInteraction(const G4ParticleDefinition *, G4int theA, G4int theZ, G4double s)
static G4Proton * Proton()
double GetNuclearTgtDestructP2() const
double fExciEnergyPerWoundedNucleon
static G4KaonMinus * KaonMinus()
double GetProbLogDistrPrD() const
double fPt2NuclearDestructP4
G4double GetPDGMass() const
static G4KaonPlus * KaonPlus()
double GetPt2NuclearDestructP1() const
G4double G4Log(G4double x)
void SetTarMinDiffMass(const G4double aValue)
static G4ThreadLocal bool chipsComponentXSisInitialized
G4HadronicDeveloperParameters & HDP
G4double ProbabilityOfAnnihilation
void SetR2ofNuclearDestruction(const G4double aValue)
void SetProbLogDistrPrD(const G4double aValue)
double GetProc1Ymin() const
static constexpr double fermi
double GetProc0A3() const
bool fNuclearTgtDestructP1_ADEP
static constexpr double fermi
void SetAvaragePt2ofElasticScattering(const G4double aPt2)
static constexpr double millibarn
static G4Pow * GetInstance()
void SetProbOfSameQuarkExchange(const G4double aValue)
double GetProc4Ymin() const
G4double powA(G4double A, G4double y) const
double GetProc4Atop() const
double GetProc0Atop() const
G4int GetBaryonNumber() const
bool fNuclearProjDestructP1_NBRNDEP
double GetProc4A2() const
bool IsNuclearProjDestructP1_NBRNDEP() const
void SetTotalCrossSection(const G4double Xtotal)
double GetProjMinNonDiffMass() const
static constexpr double MeV
double GetProbLogDistr() const
double GetTgtMinNonDiffMass() const
void SetRadiusOfHNinteractions2(const G4double Radius2)
double fNuclearProjDestructP3
G4double CofNuclearDestruction
double GetTgtMinDiffMass() const
virtual G4double GetTotalElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double N)
double GetProc4B1() const
bool fProjDiffDissociation
G4FTFSettingDefaultHDP FTFDefaultsHDP
G4double ExcitationEnergyPerWoundedNucleon
double GetProc0Ymin() const
G4FTFParamCollBaryonProj()
double GetProc1A2() const
double GetDeltaProbAtQuarkExchange() const
G4double TarMinNonDiffMass
G4double ProcParams[5][7]
G4double MaxPt2ofNuclearDestruction
void SetProbabilityOfAnnihilation(const G4double aValue)
void SetProbLogDistr(const G4double aValue)
G4double ProbOfSameQuarkExchange
double GetNuclearProjDestructP3() const
G4double ProbabilityOfElasticScatt
double fNuclearProjDestructP2
G4double ProjMinNonDiffMass
G4double RadiusOfHNinteractions2
bool IsNuclearTgtDestructP1_ADEP() const
double GetProc1A3() const
double GetDofNuclearDestruct() const
void SetMaxPt2ofNuclearDestruction(const G4double aValue)
void SetQuarkProbabilitiesAtGluonSplitUp(const G4double Puubar, const G4double Pddbar, const G4double Pssbar)
double fProjMinNonDiffMass
static G4Neutron * Neutron()
void SetExcitationEnergyPerWoundedNucleon(const G4double aValue)
G4double Pt2ofNuclearDestruction
static G4HadronicDeveloperParameters & GetInstance()
double GetProc1B2() const
double fNuclearTgtDestructP2
double GetR2ofNuclearDestruct() const
G4int GetPDGEncoding() const
G4GLOB_DLL std::ostream G4cout
G4double CofNuclearDestructionPr
void SetProjMinDiffMass(const G4double aValue)
void SetDofNuclearDestruction(const G4double aValue)
double GetNuclearProjDestructP2() const
double fNuclearTgtDestructP1
G4ChipsComponentXS * FTFxsManager
void SetAveragePt2(const G4double aValue)
double GetMaxPt2ofNuclearDestruct() const
void SetPt2ofNuclearDestruction(const G4double aValue)
static constexpr double pi
double GetNuclearTgtDestructP3() const
G4double DeltaProbAtQuarkExchange
double GetProc0B1() const
double fTgtMinNonDiffMass
double GetExciEnergyPerWoundedNucleon() const
double GetPt2NuclearDestructP2() const
void SetTarMinNonDiffMass(const G4double aValue)
G4bool DeveloperGet(const std::string name, G4bool &value)
void SetInelasticCrossSection(const G4double Xinelastic)
G4FTFParamCollBaryonProj fParCollBaryonProj
G4double FTFXannihilation
void SetGamma0(const G4double Gamma0)
static constexpr double GeV
void SetDeltaProbAtQuarkExchange(const G4double aValue)
static constexpr double GeV
double GetProjMinDiffMass() const
double GetProc4B2() const
double fMaxPt2ofNuclearDestruct
double fProbOfSameQuarkExchange
double GetAveragePt2() const
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)