1181   G4int absPDGcode = std::abs(PDGcode);
 
 1192   G4double sqrLogPlab = LogPlab * LogPlab;
 
 1198   G4double NumberOfTargetNeutrons = NumberOfTargetNucleons - NumberOfTargetProtons;
 
 1200   if(NumberOfTargetNeutrons < 0.0) NumberOfTargetNeutrons = 0.0;
 
 1202   G4double Xtotal, Xelastic, Xinelastic;
 
 1204   if( absPDGcode > 1000 )  
 
 1207                          0.522*sqrLogPlab - 4.51*LogPlab;
 
 1210                          0.513*sqrLogPlab - 4.27*LogPlab;
 
 1213                          0.169*sqrLogPlab - 1.85*LogPlab;
 
 1216                          0.169*sqrLogPlab - 1.85*LogPlab;
 
 1218        Xtotal          = (NumberOfTargetProtons * XtotPP +
 
 1219                           NumberOfTargetNeutrons * XtotPN);
 
 1221        Xelastic        = (NumberOfTargetProtons * XelPP +
 
 1222                           NumberOfTargetNeutrons * XelPN);
 
 1224   else if( PDGcode ==  211 ) 
 
 1227                           0.19 *sqrLogPlab - 0.0 *LogPlab;
 
 1230                           0.456*sqrLogPlab - 4.03*LogPlab;
 
 1233                            0.079*sqrLogPlab - 0.0 *LogPlab;
 
 1236                           0.043*sqrLogPlab - 0.0 *LogPlab;
 
 1238        Xtotal           = ( NumberOfTargetProtons  * XtotPiP +
 
 1239                             NumberOfTargetNeutrons * XtotPiN  );
 
 1241        Xelastic         = ( NumberOfTargetProtons  * XelPiP  +
 
 1242                             NumberOfTargetNeutrons * XelPiN   );
 
 1244   else if( PDGcode == -211 ) 
 
 1247                           0.456*sqrLogPlab - 4.03*LogPlab;
 
 1250                           0.19 *sqrLogPlab - 0.0 *LogPlab;
 
 1253                           0.043*sqrLogPlab - 0.0 *LogPlab;
 
 1256                            0.079*sqrLogPlab - 0.0 *LogPlab;
 
 1258        Xtotal           = ( NumberOfTargetProtons  * XtotPiP +
 
 1259                             NumberOfTargetNeutrons * XtotPiN  );
 
 1261        Xelastic         = ( NumberOfTargetProtons  * XelPiP  +
 
 1262                             NumberOfTargetNeutrons * XelPiN   );
 
 1264   else if( PDGcode ==  111 )  
 
 1267                           0.19 *sqrLogPlab - 0.0 *LogPlab +   
 
 1269                           0.456*sqrLogPlab - 4.03*LogPlab)/2; 
 
 1272                           0.456*sqrLogPlab - 4.03*LogPlab +   
 
 1274                           0.19 *sqrLogPlab - 0.0 *LogPlab)/2; 
 
 1277                            0.079*sqrLogPlab - 0.0 *LogPlab +    
 
 1279                            0.043*sqrLogPlab - 0.0 *LogPlab)/2; 
 
 1282                            0.043*sqrLogPlab - 0.0 *LogPlab +   
 
 1284                            0.079*sqrLogPlab - 0.0 *LogPlab)/2; 
 
 1286        Xtotal           = ( NumberOfTargetProtons  * XtotPiP +
 
 1287                             NumberOfTargetNeutrons * XtotPiN  );
 
 1289        Xelastic         = ( NumberOfTargetProtons  * XelPiP  +
 
 1290                             NumberOfTargetNeutrons * XelPiN   );
 
 1292   else if( PDGcode == 321 ) 
 
 1295                          0.26 *sqrLogPlab - 1.0 *LogPlab;
 
 1297                          0.21 *sqrLogPlab - 0.89*LogPlab;
 
 1300                           0.16 *sqrLogPlab - 1.3 *LogPlab;
 
 1303                           0.29 *sqrLogPlab - 2.4 *LogPlab;
 
 1305        Xtotal          = ( NumberOfTargetProtons  * XtotKP +
 
 1306                            NumberOfTargetNeutrons * XtotKN  );
 
 1308        Xelastic        = ( NumberOfTargetProtons  * XelKP  +
 
 1309                            NumberOfTargetNeutrons * XelKN   );
 
 1311   else if( PDGcode ==-321 )  
 
 1314                          0.66 *sqrLogPlab - 5.6 *LogPlab;
 
 1316                          0.38 *sqrLogPlab - 2.9 *LogPlab;
 
 1319                           0.29 *sqrLogPlab - 2.4 *LogPlab;
 
 1322                           0.16 *sqrLogPlab - 1.3 *LogPlab;
 
 1324        Xtotal          = ( NumberOfTargetProtons  * XtotKP +
 
 1325                            NumberOfTargetNeutrons * XtotKN  );
 
 1327        Xelastic        = ( NumberOfTargetProtons  * XelKP  +
 
 1328                            NumberOfTargetNeutrons * XelKN   );
 
 1330   else if( PDGcode == 311 ) 
 
 1333                           0.26 *sqrLogPlab - 1.0 *LogPlab +   
 
 1335                           0.66 *sqrLogPlab - 5.6 *LogPlab)/2; 
 
 1338                           0.21 *sqrLogPlab - 0.89*LogPlab +   
 
 1340                           0.38 *sqrLogPlab - 2.9 *LogPlab)/2; 
 
 1343                            + 0.16 *sqrLogPlab - 1.3 *LogPlab +   
 
 1345                            0.29 *sqrLogPlab - 2.4 *LogPlab)/2; 
 
 1348                            0.29 *sqrLogPlab - 2.4 *LogPlab +   
 
 1350                            0.16 *sqrLogPlab - 1.3 *LogPlab)/2; 
 
 1352        Xtotal          = ( NumberOfTargetProtons  * XtotKP +
 
 1353                            NumberOfTargetNeutrons * XtotKN  );
 
 1355        Xelastic        = ( NumberOfTargetProtons  * XelKP  +
 
 1356                            NumberOfTargetNeutrons * XelKN   );
 
 1361                          0.522*sqrLogPlab - 4.51*LogPlab;
 
 1364                          0.513*sqrLogPlab - 4.27*LogPlab;
 
 1367                          0.169*sqrLogPlab - 1.85*LogPlab;
 
 1369                          0.169*sqrLogPlab - 1.85*LogPlab;
 
 1371        Xtotal          = ( NumberOfTargetProtons  * XtotPP +
 
 1372                            NumberOfTargetNeutrons * XtotPN  );
 
 1374        Xelastic        = ( NumberOfTargetProtons  * XelPP  +
 
 1375                            NumberOfTargetNeutrons * XelPN   );
 
 1377   Xinelastic = Xtotal - Xelastic;
 
 1379   if( Xinelastic < 0.) Xinelastic = 0.;
 
static G4Pow * GetInstance()
 
G4double powA(G4double A, G4double y) const 
 
G4double GetTotalEnergy() const 
 
G4int GetPDGEncoding() const 
 
G4ParticleDefinition * GetDefinition() const 
 
G4double G4Log(G4double x)
 
static constexpr double GeV
 
static constexpr double millibarn
 
G4ThreeVector GetMomentum() const