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