Ignore:
Timestamp:
Jan 8, 2010, 11:56:51 AM (16 years ago)
Author:
garnier
Message:

update geant4.9.3 tag

Location:
trunk/source/processes/hadronic/cross_sections/src
Files:
25 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/cross_sections/src/G4BGGNucleonElasticXS.cc

    r1196 r1228  
    2424// ********************************************************************
    2525//
    26 // $Id: G4BGGNucleonElasticXS.cc,v 1.5 2009/11/19 12:30:48 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     26// $Id: G4BGGNucleonElasticXS.cc,v 1.7 2009/11/19 19:40:45 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-03 $
    2828//
    2929// -------------------------------------------------------------------
     
    9393  } else if(iz == 1) {
    9494    if( A < 1.5) {
    95       //fHadron->GetHadronNucleonXscPDG(dp, G4Proton::Proton());
    96       //fHadron->GetHadronNucleonXscEL(dp, G4Proton::Proton());
    97       //fHadron->GetHadronNucleonXscNS(dp, G4Proton::Proton());
    98       fHadron->GetHadronNucleonXscMK(dp, G4Proton::Proton());
     95      fHadron->GetHadronNucleonXscNS(dp, G4Proton::Proton());
    9996      cross = fHadron->GetElasticHadronNucleonXsc();
    10097    } else {
    101       fHadron->GetHadronNucleonXscMK(dp, G4Proton::Proton());
     98      fHadron->GetHadronNucleonXscNS(dp, G4Proton::Proton());
    10299      cross = fHadron->GetElasticHadronNucleonXsc();
    103       fHadron->GetHadronNucleonXscMK(dp, G4Neutron::Neutron());
     100      fHadron->GetHadronNucleonXscNS(dp, G4Neutron::Neutron());
    104101      cross += fHadron->GetElasticHadronNucleonXsc();
    105102    }
     
    180177  }
    181178  dp.SetKineticEnergy(fLowEnergy);
    182   fHadron->GetHadronNucleonXscMK(&dp, G4Proton::Proton());
     179  fHadron->GetHadronNucleonXscNS(&dp, G4Proton::Proton());
    183180  theCoulombFac[1] = fHadron->GetElasticHadronNucleonXsc();
    184181  if(isProton) { theCoulombFac[1] /= CoulombFactor(fLowEnergy, 1.0); }
  • trunk/source/processes/hadronic/cross_sections/src/G4BGGNucleonInelasticXS.cc

    r1196 r1228  
    2424// ********************************************************************
    2525//
    26 // $Id: G4BGGNucleonInelasticXS.cc,v 1.5 2009/11/19 12:28:56 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     26// $Id: G4BGGNucleonInelasticXS.cc,v 1.7 2009/11/19 19:40:45 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-03 $
    2828//
    2929// -------------------------------------------------------------------
     
    9191  } else if(iz == 1) {
    9292    if( A < 1.5) {
    93       //fHadron->GetHadronNucleonXscPDG(dp, G4Proton::Proton());
    94       //fHadron->GetHadronNucleonXscEL(dp, G4Proton::Proton());
    95       //fHadron->GetHadronNucleonXscNS(dp, G4Proton::Proton());
    96       //fHadron->GetHadronNucleonXscVU(dp, G4Proton::Proton());
    97       fHadron->GetHadronNucleonXscMK(dp, G4Proton::Proton());
     93      fHadron->GetHadronNucleonXscNS(dp, G4Proton::Proton());
    9894      cross = fHadron->GetInelasticHadronNucleonXsc();
    9995    } else {
    100       fHadron->GetHadronNucleonXscMK(dp, G4Proton::Proton());
     96      fHadron->GetHadronNucleonXscNS(dp, G4Proton::Proton());
    10197      cross = fHadron->GetInelasticHadronNucleonXsc();
    102       fHadron->GetHadronNucleonXscMK(dp, G4Neutron::Neutron());
     98      fHadron->GetHadronNucleonXscNS(dp, G4Neutron::Neutron());
    10399      cross += fHadron->GetInelasticHadronNucleonXsc();
    104100    }
     
    180176  }
    181177  dp.SetKineticEnergy(fLowEnergy);
    182   fHadron->GetHadronNucleonXscMK(&dp, G4Proton::Proton());
     178  fHadron->GetHadronNucleonXscNS(&dp, G4Proton::Proton());
    183179  theCoulombFac[1] =
    184180    fHadron->GetInelasticHadronNucleonXsc()/CoulombFactor(fLowEnergy,1.0);
  • trunk/source/processes/hadronic/cross_sections/src/G4BGGPionElasticXS.cc

    r1196 r1228  
    2424// ********************************************************************
    2525//
    26 // $Id: G4BGGPionElasticXS.cc,v 1.5 2009/11/19 12:27:22 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     26// $Id: G4BGGPionElasticXS.cc,v 1.7 2009/11/19 19:40:45 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-03 $
    2828//
    2929// -------------------------------------------------------------------
     
    9393  } else if(iz == 1) {
    9494    if( A < 1.5) {
    95       //fHadron->GetHadronNucleonXscPDG(dp, G4Proton::Proton());
    96       //fHadron->GetHadronNucleonXscEL(dp, G4Proton::Proton());
    9795      fHadron->GetHadronNucleonXscNS(dp, G4Proton::Proton());
    98       //fHadron->GetHadronNucleonXscVU(dp, G4Proton::Proton());
    99       //fHadron->GetHadronNucleonXscMK(dp, G4Proton::Proton());
    10096      cross = fHadron->GetElasticHadronNucleonXsc();
    10197    } else {
  • trunk/source/processes/hadronic/cross_sections/src/G4BGGPionInelasticXS.cc

    r1196 r1228  
    2424// ********************************************************************
    2525//
    26 // $Id: G4BGGPionInelasticXS.cc,v 1.6 2009/11/19 12:24:41 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     26// $Id: G4BGGPionInelasticXS.cc,v 1.8 2009/11/19 19:40:45 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-03 $
    2828//
    2929// -------------------------------------------------------------------
     
    9494
    9595    if( A < 1.5) {
    96       fHadron->GetHadronNucleonXscMK(dp, G4Proton::Proton());
     96      fHadron->GetHadronNucleonXscNS(dp, G4Proton::Proton());
    9797      cross = fHadron->GetInelasticHadronNucleonXsc();
    9898    } else {
    99       fHadron->GetHadronNucleonXscMK(dp, G4Proton::Proton());
     99      fHadron->GetHadronNucleonXscNS(dp, G4Proton::Proton());
    100100      cross = fHadron->GetInelasticHadronNucleonXsc();
    101       fHadron->GetHadronNucleonXscMK(dp, G4Neutron::Neutron());
     101      fHadron->GetHadronNucleonXscNS(dp, G4Neutron::Neutron());
    102102      cross += fHadron->GetInelasticHadronNucleonXsc();
    103103    }
  • trunk/source/processes/hadronic/cross_sections/src/G4CrossSectionDataSetRegistry.cc

    r1196 r1228  
    2525//
    2626//
    27 // $Id: G4CrossSectionDataSetRegistry.cc,v 1.5 2009/08/12 20:25:10 vnivanch Exp $
    28 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     27// $Id: G4CrossSectionDataSetRegistry.cc,v 1.6 2009/12/02 15:59:59 vnivanch Exp $
     28// GEANT4 tag $Name: geant4-09-03 $
    2929//
    3030// -------------------------------------------------------------------
     
    6767  if(n > 0) {
    6868    for (size_t i=0; i<n; ++i) {
    69       if(xSections[i]) delete xSections[i];
     69      if(xSections[i]) {
     70        G4VCrossSectionDataSet* p = xSections[i];
     71        xSections[i] = 0;
     72        delete p;
     73      }
    7074    }
    7175    xSections.clear();
     
    7983  if(n > 0) {
    8084    for (size_t i=0; i<n; ++i) {
    81       if(xSections[i] == p) return;
     85      if(xSections[i] == p) { return; }
    8286    }
    8387  }
     
    9397      if(xSections[i] == p) {
    9498        xSections[i] = 0;
    95         if(i == n-1) xSections.pop_back();
     99        if(i == n-1) { xSections.pop_back(); }
    96100        return;
    97101      }
  • trunk/source/processes/hadronic/cross_sections/src/G4CrossSectionDataStore.cc

    r1196 r1228  
    2525//
    2626// $Id: G4CrossSectionDataStore.cc,v 1.16 2009/01/24 11:54:47 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     27// GEANT4 tag $Name: geant4-09-03 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc

    r1196 r1228  
    2626//
    2727// $Id: G4ElectroNuclearCrossSection.cc,v 1.29 2008/10/24 19:15:17 dennis Exp $
    28 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03 $
    2929//
    3030//
  • trunk/source/processes/hadronic/cross_sections/src/G4GGNuclNuclCrossSection.cc

    r1055 r1228  
    164164    // production to be checked !!! edit MK xsc
    165165
    166     sigma = (pZ*tZ+pN*tN)*GetHadronNucleonXscMK(theProton, pTkin, theProton) +
    167           (pZ*tN+pN*tZ)*GetHadronNucleonXscMK(theProton, pTkin, theNeutron);
     166    //sigma = (pZ*tZ+pN*tN)*GetHadronNucleonXscMK(theProton, pTkin, theProton) +
     167    //      (pZ*tN+pN*tZ)*GetHadronNucleonXscMK(theProton, pTkin, theNeutron);
     168
     169    sigma = (pZ*tZ+pN*tN)*GetHadronNucleonXscNS(theProton, pTkin, theProton) +
     170          (pZ*tN+pN*tZ)*GetHadronNucleonXscNS(theProton, pTkin, theNeutron);
    168171 
    169172    ratio = sigma/nucleusSquare;
     
    588591  if(Nt < 0.) Nt = 0.;
    589592 
    590   sumInelastic  = Zt*GetHadronNucleonXscMK(aParticle, theProton);
    591   sumInelastic += Nt*GetHadronNucleonXscMK(aParticle, theNeutron);   
     593  sumInelastic  = Zt*GetHadronNucleonXscNS(aParticle, theProton);
     594  sumInelastic += Nt*GetHadronNucleonXscNS(aParticle, theNeutron);   
    592595 
    593596  return sumInelastic;
     
    652655
    653656  return Xinelastic*= millibarn;
    654 }
    655 
    656 /////////////////////////////////////////////////////////////////////////////////////
    657 //
    658 // Returns hadron-nucleon cross-section based on Mikhail Kossov CHIPS parametrisation of
    659 // data from G4QuasiFreeRatios class
    660 
    661 G4double
    662 G4GGNuclNuclCrossSection::GetHadronNucleonXscMK(G4ParticleDefinition* pParticle, G4double pTkin,
    663                                                 G4ParticleDefinition* nucleon  )
    664 {
    665   G4int I = -1;
    666   G4int PDG = pParticle->GetPDGEncoding();
    667   G4double totalXsc = 0;
    668   G4double elasticXsc = 0;
    669   G4double inelasticXsc;
    670   // G4int absPDG = std::abs(PDG);
    671 
    672   G4double pM = pParticle->GetPDGMass();
    673   G4double p  = std::sqrt(pTkin*(pTkin+2*pM))/GeV;
    674 
    675   G4bool F = false;           
    676   if(nucleon == theProton)       F = true;
    677   else if(nucleon == theNeutron) F = false;
    678   else
    679   {
    680     G4cout << "nucleon is not proton or neutron, return xsc for proton" << G4endl;
    681     F = true;
    682   }
    683 
    684   G4bool kfl = true;                             // Flag of K0/aK0 oscillation
    685   G4bool kf  = false;
    686 
    687   if( PDG == 130 || PDG == 310 )
    688   {
    689     kf = true;
    690     if( G4UniformRand() > .5 ) kfl = false;
    691   }
    692   if     ( (PDG == 2212 && F) || (PDG == 2112 && !F) ) I = 0; // pp/nn
    693   else if( (PDG == 2112 && F) || (PDG == 2212 && !F) ) I = 1; // np/pn
    694   else
    695   {
    696     G4cout<<"MK PDG = "<<PDG
    697           <<", while it is defined only for p,n,hyperons,anti-baryons,pi,K/antiK"<<G4endl;
    698     G4Exception("G4QuasiFreeRatio::FetchElTot:","22",FatalException,"CHIPScrash");
    699   }
    700 
    701   // Each parameter set can have not more than nPoints = 128 parameters
    702 
    703   static const G4double lmi = 3.5;       // min of (lnP-lmi)^2 parabola
    704   static const G4double pbe = .0557;     // elastic (lnP-lmi)^2 parabola coefficient
    705   static const G4double pbt = .3;        // total (lnP-lmi)^2 parabola coefficient
    706   static const G4double pmi = .1;        // Below that fast LE calculation is made
    707   static const G4double pma = 1000.;     // Above that fast HE calculation is made
    708                  
    709   if( p <= 0.)
    710   {
    711     G4cout<<" p = "<<p<<" is zero or negative"<<G4endl;
    712 
    713     elasticXsc   = 0.;
    714     inelasticXsc = 0.;
    715     totalXsc     = 0.;
    716 
    717     return totalXsc;
    718   }
    719   if (!I)                          // pp/nn
    720   {
    721     if( p < pmi )
    722     {
    723       G4double p2 = p*p;
    724       elasticXsc          = 1./(.00012 + p2*.2);
    725       totalXsc          = elasticXsc;
    726     }
    727     else if(p>pma)
    728     {
    729       G4double lp  = std::log(p)-lmi;
    730       G4double lp2 = lp*lp;
    731       elasticXsc  = pbe*lp2 + 6.72;
    732       totalXsc    = pbt*lp2 + 38.2;
    733     }
    734     else
    735     {
    736       G4double p2  = p*p;
    737       G4double LE  = 1./( .00012 + p2*.2);
    738       G4double lp  = std::log(p) - lmi;
    739       G4double lp2 = lp*lp;
    740       G4double rp2 = 1./p2;
    741       elasticXsc  = LE + ( pbe*lp2 + 6.72+32.6/p)/( 1. + rp2/p);
    742       totalXsc    = LE + ( pbt*lp2 + 38.2+52.7*rp2)/( 1. + 2.72*rp2*rp2);
    743     }
    744   }
    745   else if( I==1 )                        // np/pn
    746   {
    747     if( p < pmi )
    748     {
    749       G4double p2 = p*p;
    750       elasticXsc = 1./( .00012 + p2*( .051 + .1*p2));
    751       totalXsc   = elasticXsc;
    752     }
    753     else if( p > pma )
    754     {
    755       G4double lp  = std::log(p) - lmi;
    756       G4double lp2 = lp*lp;
    757       elasticXsc  = pbe*lp2 + 6.72;
    758       totalXsc    = pbt*lp2 + 38.2;
    759     }
    760     else
    761     {
    762       G4double p2  = p*p;
    763       G4double LE  = 1./( .00012 + p2*( .051 + .1*p2 ) );
    764       G4double lp  = std::log(p) - lmi;
    765       G4double lp2 = lp*lp;
    766       G4double rp2 = 1./p2;
    767       elasticXsc  = LE + (pbe*lp2 + 6.72 + 30./p)/( 1. + .49*rp2/p);
    768       totalXsc    = LE + (pbt*lp2 + 38.2)/( 1. + .54*rp2*rp2);
    769     }
    770   }
    771   else
    772   {
    773     G4cout<<"PDG incoding = "<<I<<" is not defined (0-1)"<<G4endl;
    774  
    775   }
    776   if( elasticXsc > totalXsc ) elasticXsc = totalXsc;
    777 
    778   totalXsc   *= millibarn;
    779   elasticXsc *= millibarn;
    780   inelasticXsc   = totalXsc - elasticXsc;
    781   if (inelasticXsc < 0.) inelasticXsc = 0.;
    782 
    783   return inelasticXsc;
    784657}
    785658
     
    940813  }
    941814  return R;
    942 
    943 
    944 
    945 }
    946 
    947 
    948 
    949 
     815}
    950816
    951817
  • trunk/source/processes/hadronic/cross_sections/src/G4GlauberGribovCrossSection.cc

    r962 r1228  
    355355  else
    356356  {
    357     sigma        = GetHadronNucleonXscPDG(aParticle, A, Z);
     357    sigma        = GetHadronNucleonXscNS(aParticle, A, Z);
    358358    cofInelastic = 2.2;
    359359    cofTotal     = 2.0;
     
    418418  else
    419419  {
    420     sigma        = GetHadronNucleonXscPDG(aParticle, A, Z);
     420    sigma        = GetHadronNucleonXscNS(aParticle, A, Z);
    421421    cofInelastic = 2.2;
    422422    cofTotal     = 2.0;
     
    460460  else
    461461  {
    462     sigma        = GetHadronNucleonXscPDG(aParticle, A, Z);
     462    sigma        = GetHadronNucleonXscNS(aParticle, A, Z);
    463463    cofInelastic = 2.2;
    464464    cofTotal     = 2.0;
     
    10701070  else
    10711071  {
    1072     sumInelastic  = Zt*GetHadronNucleonXscMK(aParticle, theProton);
    1073     sumInelastic += Nt*GetHadronNucleonXscMK(aParticle, theNeutron);   
     1072    //sumInelastic  = Zt*GetHadronNucleonXscMK(aParticle, theProton);
     1073    // sumInelastic += Nt*GetHadronNucleonXscMK(aParticle, theNeutron);   
     1074    sumInelastic  = Zt*GetHadronNucleonXscNS(aParticle, 1.0, 1.0);
     1075    sumInelastic += Nt*GetHadronNucleonXscNS(aParticle, 1.0, 0.0);   
    10741076  }
    10751077  return sumInelastic;
     
    12891291}
    12901292
    1291 /////////////////////////////////////////////////////////////////////////////////////
    1292 //
    1293 // Returns hadron-nucleon cross-section based on Mikhail Kossov CHIPS parametrisation of
    1294 // data from G4QuasiFreeRatios class
    1295 
    1296 G4double
    1297 G4GlauberGribovCrossSection::GetHadronNucleonXscMK(const G4DynamicParticle* aParticle,
    1298                                           const G4ParticleDefinition* nucleon  )
    1299 {
    1300   G4int I = -1;
    1301   G4int PDG = aParticle->GetDefinition()->GetPDGEncoding();
    1302   G4double totalXsc = 0;
    1303   G4double elasticXsc = 0;
    1304   G4double inelasticXsc;
    1305   // G4int absPDG = std::abs(PDG);
    1306 
    1307   G4double p = aParticle->GetMomentum().mag()/GeV;
    1308 
    1309   G4bool F = false;           
    1310   if(nucleon == theProton)       F = true;
    1311   else if(nucleon == theNeutron) F = false;
    1312   else
    1313   {
    1314     G4cout << "nucleon is not proton or neutron, return xsc for proton" << G4endl;
    1315     F = true;
    1316   }
    1317 
    1318   G4bool kfl = true;                             // Flag of K0/aK0 oscillation
    1319   G4bool kf  = false;
    1320 
    1321   if( PDG == 130 || PDG == 310 )
    1322   {
    1323     kf = true;
    1324     if( G4UniformRand() > .5 ) kfl = false;
    1325   }
    1326   if     ( (PDG == 2212 && F) || (PDG == 2112 && !F) ) I = 0; // pp/nn
    1327   else if( (PDG == 2112 && F) || (PDG == 2212 && !F) ) I = 1; // np/pn
    1328 
    1329   else if( (PDG == -211 && F) || (PDG == 211  && !F) ) I = 2; // pimp/pipn
    1330   else if( (PDG == 211  && F) || (PDG ==-211  && !F) ) I = 3; // pipp/pimn
    1331 
    1332   else if( PDG == -321 || PDG == -311 || ( kf && !kfl ) ) I = 4; // KmN/K0N
    1333   else if( PDG == 321  || PDG == 311  || ( kf && kfl  ) ) I = 5; // KpN/aK0N
    1334 
    1335   else if( PDG > 3000 && PDG < 3335)   I = 6;        // @@ for all hyperons - take Lambda
    1336   else if( PDG < -2000 && PDG > -3335) I = 7;        // @@ for all anti-baryons - anti-p/anti-n
    1337   else
    1338   {
    1339     G4cout<<"MK PDG = "<<PDG
    1340           <<", while it is defined only for p,n,hyperons,anti-baryons,pi,K/antiK"<<G4endl;
    1341     G4Exception("G4QuasiFreeRatio::FetchElTot:","22",FatalException,"CHIPScrash");
    1342   }
    1343 
    1344   // Each parameter set can have not more than nPoints = 128 parameters
    1345 
    1346   static const G4double lmi = 3.5;       // min of (lnP-lmi)^2 parabola
    1347   static const G4double pbe = .0557;     // elastic (lnP-lmi)^2 parabola coefficient
    1348   static const G4double pbt = .3;        // total (lnP-lmi)^2 parabola coefficient
    1349   static const G4double pmi = .1;        // Below that fast LE calculation is made
    1350   static const G4double pma = 1000.;     // Above that fast HE calculation is made
    1351                  
    1352   if( p <= 0.)
    1353   {
    1354     G4cout<<" p = "<<p<<" is zero or negative"<<G4endl;
    1355 
    1356     elasticXsc   = 0.;
    1357     inelasticXsc = 0.;
    1358     totalXsc     = 0.;
    1359 
    1360     return totalXsc;
    1361   }
    1362   if (!I)                          // pp/nn
    1363   {
    1364     if( p < pmi )
    1365     {
    1366       G4double p2 = p*p;
    1367       elasticXsc          = 1./(.00012 + p2*.2);
    1368       totalXsc          = elasticXsc;
    1369     }
    1370     else if(p>pma)
    1371     {
    1372       G4double lp  = std::log(p)-lmi;
    1373       G4double lp2 = lp*lp;
    1374       elasticXsc  = pbe*lp2 + 6.72;
    1375       totalXsc    = pbt*lp2 + 38.2;
    1376     }
    1377     else
    1378     {
    1379       G4double p2  = p*p;
    1380       G4double LE  = 1./( .00012 + p2*.2);
    1381       G4double lp  = std::log(p) - lmi;
    1382       G4double lp2 = lp*lp;
    1383       G4double rp2 = 1./p2;
    1384       elasticXsc  = LE + ( pbe*lp2 + 6.72+32.6/p)/( 1. + rp2/p);
    1385       totalXsc    = LE + ( pbt*lp2 + 38.2+52.7*rp2)/( 1. + 2.72*rp2*rp2);
    1386     }
    1387   }
    1388   else if( I==1 )                        // np/pn
    1389   {
    1390     if( p < pmi )
    1391     {
    1392       G4double p2 = p*p;
    1393       elasticXsc = 1./( .00012 + p2*( .051 + .1*p2));
    1394       totalXsc   = elasticXsc;
    1395     }
    1396     else if( p > pma )
    1397     {
    1398       G4double lp  = std::log(p) - lmi;
    1399       G4double lp2 = lp*lp;
    1400       elasticXsc  = pbe*lp2 + 6.72;
    1401       totalXsc    = pbt*lp2 + 38.2;
    1402     }
    1403     else
    1404     {
    1405       G4double p2  = p*p;
    1406       G4double LE  = 1./( .00012 + p2*( .051 + .1*p2 ) );
    1407       G4double lp  = std::log(p) - lmi;
    1408       G4double lp2 = lp*lp;
    1409       G4double rp2 = 1./p2;
    1410       elasticXsc  = LE + (pbe*lp2 + 6.72 + 30./p)/( 1. + .49*rp2/p);
    1411       totalXsc    = LE + (pbt*lp2 + 38.2)/( 1. + .54*rp2*rp2);
    1412     }
    1413   }
    1414   else if( I == 2 )                        // pimp/pipn
    1415   {
    1416     G4double lp = std::log(p);
    1417 
    1418     if(p<pmi)
    1419     {
    1420       G4double lr = lp + 1.27;
    1421       elasticXsc          = 1.53/( lr*lr + .0676);
    1422       totalXsc          = elasticXsc*3;
    1423     }
    1424     else if( p > pma )
    1425     {
    1426       G4double ld  = lp - lmi;
    1427       G4double ld2 = ld*ld;
    1428       G4double sp  = std::sqrt(p);
    1429       elasticXsc  = pbe*ld2 + 2.4 + 7./sp;
    1430       totalXsc    = pbt*ld2 + 22.3 + 12./sp;
    1431     }
    1432     else
    1433     {
    1434       G4double lr  = lp + 1.27;
    1435       G4double LE  = 1.53/( lr*lr + .0676);
    1436       G4double ld  = lp - lmi;
    1437       G4double ld2 = ld*ld;
    1438       G4double p2  = p*p;
    1439       G4double p4  = p2*p2;
    1440       G4double sp  = std::sqrt(p);
    1441       G4double lm  = lp + .36;
    1442       G4double md  = lm*lm + .04;
    1443       G4double lh  = lp - .017;
    1444       G4double hd  = lh*lh + .0025;
    1445       elasticXsc  = LE + (pbe*ld2 + 2.4 + 7./sp)/( 1. + .7/p4) + .6/md + .05/hd;
    1446       totalXsc    = LE*3 + (pbt*ld2 + 22.3 + 12./sp)/(1. + .4/p4) + 1./md + .06/hd;
    1447     }
    1448   }
    1449   else if( I == 3 )                        // pipp/pimn
    1450   {
    1451     G4double lp = std::log(p);
    1452 
    1453     if( p < pmi )
    1454     {
    1455       G4double lr  = lp + 1.27;
    1456       G4double lr2 = lr*lr;
    1457       elasticXsc  = 13./( lr2 + lr2*lr2 + .0676);
    1458       totalXsc    = elasticXsc;
    1459     }
    1460     else if( p > pma )
    1461     {
    1462       G4double ld  = lp - lmi;
    1463       G4double ld2 = ld*ld;
    1464       G4double sp  = std::sqrt(p);
    1465       elasticXsc  = pbe*ld2 + 2.4 + 6./sp;
    1466       totalXsc    = pbt*ld2 + 22.3 + 5./sp;
    1467     }
    1468     else
    1469     {
    1470       G4double lr  = lp + 1.27;
    1471       G4double lr2 = lr*lr;
    1472       G4double LE  = 13./(lr2 + lr2*lr2 + .0676);
    1473       G4double ld  = lp - lmi;
    1474       G4double ld2 = ld*ld;
    1475       G4double p2  = p*p;
    1476       G4double p4  = p2*p2;
    1477       G4double sp  = std::sqrt(p);
    1478       G4double lm  = lp - .32;
    1479       G4double md  = lm*lm + .0576;
    1480       elasticXsc  = LE + (pbe*ld2 + 2.4 + 6./sp)/(1. + 3./p4) + .7/md;
    1481       totalXsc    = LE + (pbt*ld2 + 22.3 + 5./sp)/(1. + 1./p4) + .8/md;
    1482     }
    1483   }
    1484   else if( I == 4 )                        // Kmp/Kmn/K0p/K0n
    1485   {
    1486     if( p < pmi)
    1487     {
    1488       G4double psp = p*std::sqrt(p);
    1489       elasticXsc  = 5.2/psp;
    1490       totalXsc    = 14./psp;
    1491     }
    1492     else if( p > pma )
    1493     {
    1494       G4double ld  = std::log(p) - lmi;
    1495       G4double ld2 = ld*ld;
    1496       elasticXsc           = pbe*ld2 + 2.23;
    1497       totalXsc           = pbt*ld2 + 19.5;
    1498     }
    1499     else
    1500     {
    1501       G4double ld  = std::log(p) - lmi;
    1502       G4double ld2 = ld*ld;
    1503       G4double sp  = std::sqrt(p);
    1504       G4double psp = p*sp;
    1505       G4double p2  = p*p;
    1506       G4double p4  = p2*p2;
    1507       G4double lm  = p - .39;
    1508       G4double md  = lm*lm + .000156;
    1509       G4double lh  = p - 1.;
    1510       G4double hd  = lh*lh + .0156;
    1511       elasticXsc  = 5.2/psp + (pbe*ld2 + 2.23)/(1. - .7/sp + .075/p4) + .004/md + .15/hd;
    1512       totalXsc    = 14./psp + (pbt*ld2 + 19.5)/(1. - .21/sp + .52/p4) + .006/md + .30/hd;
    1513     }
    1514   }
    1515   else if( I == 5 )                        // Kpp/Kpn/aKp/aKn
    1516   {
    1517     if( p < pmi )
    1518     {
    1519       G4double lr = p - .38;
    1520       G4double lm = p - 1.;
    1521       G4double md = lm*lm + .372;   
    1522       elasticXsc = .7/(lr*lr + .0676) + 2./md;
    1523       totalXsc   = elasticXsc + .6/md;
    1524     }
    1525     else if( p > pma )
    1526     {
    1527       G4double ld  = std::log(p) - lmi;
    1528       G4double ld2 = ld*ld;
    1529       elasticXsc           = pbe*ld2 + 2.23;
    1530       totalXsc           = pbt*ld2 + 19.5;
    1531     }
    1532     else
    1533     {
    1534       G4double ld  = std::log(p) - lmi;
    1535       G4double ld2 = ld*ld;
    1536       G4double lr  = p - .38;
    1537       G4double LE  = .7/(lr*lr + .0676);
    1538       G4double sp  = std::sqrt(p);
    1539       G4double p2  = p*p;
    1540       G4double p4  = p2*p2;
    1541       G4double lm  = p - 1.;
    1542       G4double md  = lm*lm + .372;
    1543       elasticXsc  = LE + (pbe*ld2 + 2.23)/(1. - .7/sp + .1/p4) + 2./md;
    1544       totalXsc    = LE + (pbt*ld2 + 19.5)/(1. + .46/sp + 1.6/p4) + 2.6/md;
    1545     }
    1546   }
    1547   else if( I == 6 )                        // hyperon-N
    1548   {
    1549     if( p < pmi )
    1550     {
    1551       G4double p2 = p*p;
    1552       elasticXsc = 1./(.002 + p2*(.12 + p2));
    1553       totalXsc   = elasticXsc;
    1554     }
    1555     else if( p > pma )
    1556     {
    1557       G4double lp  = std::log(p) - lmi;
    1558       G4double lp2 = lp*lp;
    1559       G4double sp  = std::sqrt(p);
    1560       elasticXsc  = (pbe*lp2 + 6.72)/(1. + 2./sp);
    1561       totalXsc    = (pbt*lp2 + 38.2 + 900./sp)/(1. + 27./sp);
    1562     }
    1563     else
    1564     {
    1565       G4double p2  = p*p;
    1566       G4double LE  = 1./(.002 + p2*(.12 + p2));
    1567       G4double lp  = std::log(p) - lmi;
    1568       G4double lp2 = lp*lp;
    1569       G4double p4  = p2*p2;
    1570       G4double sp  = std::sqrt(p);
    1571       elasticXsc  = LE + (pbe*lp2 + 6.72 + 99./p2)/(1. + 2./sp + 2./p4);
    1572       totalXsc    = LE + (pbt*lp2 + 38.2 + 900./sp)/(1. + 27./sp + 3./p4);
    1573     }
    1574   }
    1575   else if( I == 7 )                        // antibaryon-N
    1576   {
    1577     if( p > pma )
    1578     {
    1579       G4double lp  = std::log(p) - lmi;
    1580       G4double lp2 = lp*lp;
    1581       elasticXsc  = pbe*lp2 + 6.72;
    1582       totalXsc    = pbt*lp2 + 38.2;
    1583     }
    1584     else
    1585     {
    1586       G4double ye  = std::pow(p, 1.25);
    1587       G4double yt  = std::pow(p, .35);
    1588       G4double lp  = std::log(p) - lmi;
    1589       G4double lp2 = lp*lp;
    1590       elasticXsc  = 80./(ye + 1.) + pbe*lp2 + 6.72;
    1591       totalXsc    = (80./yt + .3)/yt +pbt*lp2 + 38.2;
    1592     }
    1593   }
    1594   else
    1595   {
    1596     G4cout<<"PDG incoding = "<<I<<" is not defined (0-7)"<<G4endl;
    1597  
    1598   }
    1599   if( elasticXsc > totalXsc ) elasticXsc = totalXsc;
    1600 
    1601   totalXsc   *= millibarn;
    1602   elasticXsc *= millibarn;
    1603   inelasticXsc   = totalXsc - elasticXsc;
    1604   if (inelasticXsc < 0.) inelasticXsc = 0.;
    1605 
    1606   return inelasticXsc;
    1607 }
    1608 
    16091293////////////////////////////////////////////////////////////////////////////////////
    16101294//
     
    16181302  G4double oneThird = 1.0/3.0;
    16191303  G4double cubicrAt = std::pow (At, oneThird);
    1620 
    16211304
    16221305  G4double R;  // = fRadiusConst*cubicrAt;
     
    16381321  R = fRadiusConst*cubicrAt;
    16391322
    1640   // return R;  // !!!!
    1641 
    1642 
    1643  
    16441323  G4double meanA  = 21.;
    16451324
     
    16791358  G4double cubicrAt = std::pow (At, oneThird);
    16801359
    1681 
    16821360  G4double R;  // = fRadiusConst*cubicrAt;
    16831361
  • trunk/source/processes/hadronic/cross_sections/src/G4HadronCaptureDataSet.cc

    r1196 r1228  
    2626//
    2727// $Id: G4HadronCaptureDataSet.cc,v 1.8 2006/06/29 19:57:35 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03 $
    2929//
    3030//
  • trunk/source/processes/hadronic/cross_sections/src/G4HadronCrossSections.cc

    r1196 r1228  
    2525//
    2626//
    27 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     27// GEANT4 tag $Name: geant4-09-03 $
    2828//
    2929//
  • trunk/source/processes/hadronic/cross_sections/src/G4HadronElasticDataSet.cc

    r1196 r1228  
    2626//
    2727// $Id: G4HadronElasticDataSet.cc,v 1.8 2006/06/29 19:57:39 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03 $
    2929//
    3030//
  • trunk/source/processes/hadronic/cross_sections/src/G4HadronFissionDataSet.cc

    r1196 r1228  
    2626//
    2727// $Id: G4HadronFissionDataSet.cc,v 1.8 2006/06/29 19:57:41 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03 $
    2929//
    3030//
  • trunk/source/processes/hadronic/cross_sections/src/G4HadronInelasticDataSet.cc

    r1196 r1228  
    2626//
    2727// $Id: G4HadronInelasticDataSet.cc,v 1.8 2006/06/29 19:57:43 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03 $
    2929//
    3030//
  • trunk/source/processes/hadronic/cross_sections/src/G4HadronNucleonXsc.cc

    r819 r1228  
    883883}
    884884
    885 /////////////////////////////////////////////////////////////////////////////////////
    886 //
    887 // Returns hadron-nucleon cross-section based on Mikhail Kossov parametrisation of
    888 // data from G4QuasiFreeRatios class
    889 
    890 G4double
    891 G4HadronNucleonXsc::GetHadronNucleonXscMK(const G4DynamicParticle* aParticle,
    892                                           const G4ParticleDefinition* nucleon  )
    893 {
    894   G4int I = -1;
    895   G4int PDG = aParticle->GetDefinition()->GetPDGEncoding();
    896 
    897   // G4int absPDG = std::abs(PDG);
    898 
    899   G4double p = aParticle->GetMomentum().mag()/GeV;
    900 
    901   G4bool F = false;           
    902   if(nucleon == theProton)       F = true;
    903   else if(nucleon == theNeutron) F = false;
    904   else
    905   {
    906     G4cout << "nucleon is not proton or neutron, return xsc for proton" << G4endl;
    907     F = true;
    908   }
    909 
    910   G4bool kfl = true;                             // Flag of K0/aK0 oscillation
    911   G4bool kf  = false;
    912 
    913   if( PDG == 130 || PDG == 310 )
    914   {
    915     kf = true;
    916     if( G4UniformRand() > .5 ) kfl = false;
    917   }
    918   if     ( (PDG == 2212 && F) || (PDG == 2112 && !F) ) I = 0; // pp/nn
    919   else if( (PDG == 2112 && F) || (PDG == 2212 && !F) ) I = 1; // np/pn
    920 
    921   else if( (PDG == -211 && F) || (PDG == 211  && !F) ) I = 2; // pimp/pipn
    922   else if( (PDG == 211  && F) || (PDG ==-211  && !F) ) I = 3; // pipp/pimn
    923 
    924   else if( PDG == -321 || PDG == -311 || ( kf && !kfl ) ) I = 4; // KmN/K0N
    925   else if( PDG == 321  || PDG == 311  || ( kf && kfl  ) ) I = 5; // KpN/aK0N
    926 
    927   else if( PDG > 3000 && PDG < 3335)   I = 6;        // @@ for all hyperons - take Lambda
    928   else if( PDG < -2000 && PDG > -3335) I = 7;        // @@ for all anti-baryons - anti-p/anti-n
    929   else
    930   {
    931     G4cout<<"MK PDG = "<<PDG
    932           <<", while it is defined only for p,n,hyperons,anti-baryons,pi,K/antiK"<<G4endl;
    933     G4Exception("G4QuasiFreeRatio::FetchElTot:","22",FatalException,"CHIPScrash");
    934   }
    935 
    936   // Each parameter set can have not more than nPoints = 128 parameters
    937 
    938   static const G4double lmi = 3.5;       // min of (lnP-lmi)^2 parabola
    939   static const G4double pbe = .0557;     // elastic (lnP-lmi)^2 parabola coefficient
    940   static const G4double pbt = .3;        // total (lnP-lmi)^2 parabola coefficient
    941   static const G4double pmi = .1;        // Below that fast LE calculation is made
    942   static const G4double pma = 1000.;     // Above that fast HE calculation is made
    943                  
    944   if( p <= 0.)
    945   {
    946     G4cout<<" p = "<<p<<" is zero or negative"<<G4endl;
    947 
    948     fElasticXsc   = 0.;
    949     fInelasticXsc = 0.;
    950     fTotalXsc     = 0.;
    951 
    952     return fTotalXsc;
    953   }
    954   if (!I)                          // pp/nn
    955   {
    956     if( p < pmi )
    957     {
    958       G4double p2 = p*p;
    959       fElasticXsc          = 1./(.00012 + p2*.2);
    960       fTotalXsc          = fElasticXsc;
    961     }
    962     else if(p>pma)
    963     {
    964       G4double lp  = std::log(p)-lmi;
    965       G4double lp2 = lp*lp;
    966       fElasticXsc  = pbe*lp2 + 6.72;
    967       fTotalXsc    = pbt*lp2 + 38.2;
    968     }
    969     else
    970     {
    971       G4double p2  = p*p;
    972       G4double LE  = 1./( .00012 + p2*.2);
    973       G4double lp  = std::log(p) - lmi;
    974       G4double lp2 = lp*lp;
    975       G4double rp2 = 1./p2;
    976       fElasticXsc  = LE + ( pbe*lp2 + 6.72+32.6/p)/( 1. + rp2/p);
    977       fTotalXsc    = LE + ( pbt*lp2 + 38.2+52.7*rp2)/( 1. + 2.72*rp2*rp2);
    978     }
    979   }
    980   else if( I==1 )                        // np/pn
    981   {
    982     if( p < pmi )
    983     {
    984       G4double p2 = p*p;
    985       fElasticXsc = 1./( .00012 + p2*( .051 + .1*p2));
    986       fTotalXsc   = fElasticXsc;
    987     }
    988     else if( p > pma )
    989     {
    990       G4double lp  = std::log(p) - lmi;
    991       G4double lp2 = lp*lp;
    992       fElasticXsc  = pbe*lp2 + 6.72;
    993       fTotalXsc    = pbt*lp2 + 38.2;
    994     }
    995     else
    996     {
    997       G4double p2  = p*p;
    998       G4double LE  = 1./( .00012 + p2*( .051 + .1*p2 ) );
    999       G4double lp  = std::log(p) - lmi;
    1000       G4double lp2 = lp*lp;
    1001       G4double rp2 = 1./p2;
    1002       fElasticXsc  = LE + (pbe*lp2 + 6.72 + 30./p)/( 1. + .49*rp2/p);
    1003       fTotalXsc    = LE + (pbt*lp2 + 38.2)/( 1. + .54*rp2*rp2);
    1004     }
    1005   }
    1006   else if( I == 2 )                        // pimp/pipn
    1007   {
    1008     G4double lp = std::log(p);
    1009 
    1010     if(p<pmi)
    1011     {
    1012       G4double lr = lp + 1.27;
    1013       fElasticXsc          = 1.53/( lr*lr + .0676);
    1014       fTotalXsc          = fElasticXsc*3;
    1015     }
    1016     else if( p > pma )
    1017     {
    1018       G4double ld  = lp - lmi;
    1019       G4double ld2 = ld*ld;
    1020       G4double sp  = std::sqrt(p);
    1021       fElasticXsc  = pbe*ld2 + 2.4 + 7./sp;
    1022       fTotalXsc    = pbt*ld2 + 22.3 + 12./sp;
    1023     }
    1024     else
    1025     {
    1026       G4double lr  = lp + 1.27;
    1027       G4double LE  = 1.53/( lr*lr + .0676);
    1028       G4double ld  = lp - lmi;
    1029       G4double ld2 = ld*ld;
    1030       G4double p2  = p*p;
    1031       G4double p4  = p2*p2;
    1032       G4double sp  = std::sqrt(p);
    1033       G4double lm  = lp + .36;
    1034       G4double md  = lm*lm + .04;
    1035       G4double lh  = lp - .017;
    1036       G4double hd  = lh*lh + .0025;
    1037       fElasticXsc  = LE + (pbe*ld2 + 2.4 + 7./sp)/( 1. + .7/p4) + .6/md + .05/hd;
    1038       fTotalXsc    = LE*3 + (pbt*ld2 + 22.3 + 12./sp)/(1. + .4/p4) + 1./md + .06/hd;
    1039     }
    1040   }
    1041   else if( I == 3 )                        // pipp/pimn
    1042   {
    1043     G4double lp = std::log(p);
    1044 
    1045     if( p < pmi )
    1046     {
    1047       G4double lr  = lp + 1.27;
    1048       G4double lr2 = lr*lr;
    1049       fElasticXsc  = 13./( lr2 + lr2*lr2 + .0676);
    1050       fTotalXsc    = fElasticXsc;
    1051     }
    1052     else if( p > pma )
    1053     {
    1054       G4double ld  = lp - lmi;
    1055       G4double ld2 = ld*ld;
    1056       G4double sp  = std::sqrt(p);
    1057       fElasticXsc  = pbe*ld2 + 2.4 + 6./sp;
    1058       fTotalXsc    = pbt*ld2 + 22.3 + 5./sp;
    1059     }
    1060     else
    1061     {
    1062       G4double lr  = lp + 1.27;
    1063       G4double lr2 = lr*lr;
    1064       G4double LE  = 13./(lr2 + lr2*lr2 + .0676);
    1065       G4double ld  = lp - lmi;
    1066       G4double ld2 = ld*ld;
    1067       G4double p2  = p*p;
    1068       G4double p4  = p2*p2;
    1069       G4double sp  = std::sqrt(p);
    1070       G4double lm  = lp - .32;
    1071       G4double md  = lm*lm + .0576;
    1072       fElasticXsc  = LE + (pbe*ld2 + 2.4 + 6./sp)/(1. + 3./p4) + .7/md;
    1073       fTotalXsc    = LE + (pbt*ld2 + 22.3 + 5./sp)/(1. + 1./p4) + .8/md;
    1074     }
    1075   }
    1076   else if( I == 4 )                        // Kmp/Kmn/K0p/K0n
    1077   {
    1078     if( p < pmi)
    1079     {
    1080       G4double psp = p*std::sqrt(p);
    1081       fElasticXsc  = 5.2/psp;
    1082       fTotalXsc    = 14./psp;
    1083     }
    1084     else if( p > pma )
    1085     {
    1086       G4double ld  = std::log(p) - lmi;
    1087       G4double ld2 = ld*ld;
    1088       fElasticXsc           = pbe*ld2 + 2.23;
    1089       fTotalXsc           = pbt*ld2 + 19.5;
    1090     }
    1091     else
    1092     {
    1093       G4double ld  = std::log(p) - lmi;
    1094       G4double ld2 = ld*ld;
    1095       G4double sp  = std::sqrt(p);
    1096       G4double psp = p*sp;
    1097       G4double p2  = p*p;
    1098       G4double p4  = p2*p2;
    1099       G4double lm  = p - .39;
    1100       G4double md  = lm*lm + .000156;
    1101       G4double lh  = p - 1.;
    1102       G4double hd  = lh*lh + .0156;
    1103       fElasticXsc  = 5.2/psp + (pbe*ld2 + 2.23)/(1. - .7/sp + .075/p4) + .004/md + .15/hd;
    1104       fTotalXsc    = 14./psp + (pbt*ld2 + 19.5)/(1. - .21/sp + .52/p4) + .006/md + .30/hd;
    1105     }
    1106   }
    1107   else if( I == 5 )                        // Kpp/Kpn/aKp/aKn
    1108   {
    1109     if( p < pmi )
    1110     {
    1111       G4double lr = p - .38;
    1112       G4double lm = p - 1.;
    1113       G4double md = lm*lm + .372;   
    1114       fElasticXsc = .7/(lr*lr + .0676) + 2./md;
    1115       fTotalXsc   = fElasticXsc + .6/md;
    1116     }
    1117     else if( p > pma )
    1118     {
    1119       G4double ld  = std::log(p) - lmi;
    1120       G4double ld2 = ld*ld;
    1121       fElasticXsc           = pbe*ld2 + 2.23;
    1122       fTotalXsc           = pbt*ld2 + 19.5;
    1123     }
    1124     else
    1125     {
    1126       G4double ld  = std::log(p) - lmi;
    1127       G4double ld2 = ld*ld;
    1128       G4double lr  = p - .38;
    1129       G4double LE  = .7/(lr*lr + .0676);
    1130       G4double sp  = std::sqrt(p);
    1131       G4double p2  = p*p;
    1132       G4double p4  = p2*p2;
    1133       G4double lm  = p - 1.;
    1134       G4double md  = lm*lm + .372;
    1135       fElasticXsc  = LE + (pbe*ld2 + 2.23)/(1. - .7/sp + .1/p4) + 2./md;
    1136       fTotalXsc    = LE + (pbt*ld2 + 19.5)/(1. + .46/sp + 1.6/p4) + 2.6/md;
    1137     }
    1138   }
    1139   else if( I == 6 )                        // hyperon-N
    1140   {
    1141     if( p < pmi )
    1142     {
    1143       G4double p2 = p*p;
    1144       fElasticXsc = 1./(.002 + p2*(.12 + p2));
    1145       fTotalXsc   = fElasticXsc;
    1146     }
    1147     else if( p > pma )
    1148     {
    1149       G4double lp  = std::log(p) - lmi;
    1150       G4double lp2 = lp*lp;
    1151       G4double sp  = std::sqrt(p);
    1152       fElasticXsc  = (pbe*lp2 + 6.72)/(1. + 2./sp);
    1153       fTotalXsc    = (pbt*lp2 + 38.2 + 900./sp)/(1. + 27./sp);
    1154     }
    1155     else
    1156     {
    1157       G4double p2  = p*p;
    1158       G4double LE  = 1./(.002 + p2*(.12 + p2));
    1159       G4double lp  = std::log(p) - lmi;
    1160       G4double lp2 = lp*lp;
    1161       G4double p4  = p2*p2;
    1162       G4double sp  = std::sqrt(p);
    1163       fElasticXsc  = LE + (pbe*lp2 + 6.72 + 99./p2)/(1. + 2./sp + 2./p4);
    1164       fTotalXsc    = LE + (pbt*lp2 + 38.2 + 900./sp)/(1. + 27./sp + 3./p4);
    1165     }
    1166   }
    1167   else if( I == 7 )                        // antibaryon-N
    1168   {
    1169     if( p > pma )
    1170     {
    1171       G4double lp  = std::log(p) - lmi;
    1172       G4double lp2 = lp*lp;
    1173       fElasticXsc  = pbe*lp2 + 6.72;
    1174       fTotalXsc    = pbt*lp2 + 38.2;
    1175     }
    1176     else
    1177     {
    1178       G4double ye  = std::pow(p, 1.25);
    1179       G4double yt  = std::pow(p, .35);
    1180       G4double lp  = std::log(p) - lmi;
    1181       G4double lp2 = lp*lp;
    1182       fElasticXsc  = 80./(ye + 1.) + pbe*lp2 + 6.72;
    1183       fTotalXsc    = (80./yt + .3)/yt +pbt*lp2 + 38.2;
    1184     }
    1185   }
    1186   else
    1187   {
    1188     G4cout<<"PDG incoding = "<<I<<" is not defined (0-7)"<<G4endl;
    1189  
    1190   }
    1191   if( fElasticXsc > fTotalXsc ) fElasticXsc = fTotalXsc;
    1192 
    1193   fTotalXsc   *= millibarn;
    1194   fElasticXsc *= millibarn;
    1195   fInelasticXsc   = fTotalXsc - fElasticXsc;
    1196   if (fInelasticXsc < 0.) fInelasticXsc = 0.;
    1197 
    1198 
    1199   return fTotalXsc;
    1200 }
    1201 
    1202 
    1203 
    1204 
    1205 
    1206885////////////////////////////////////////////////////////////////////////////////////
    1207886//
  • trunk/source/processes/hadronic/cross_sections/src/G4NeutronCaptureXS.cc

    r1197 r1228  
    2525//
    2626// $Id: G4NeutronCaptureXS.cc,v 1.2 2009/11/19 12:36:53 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     27// GEANT4 tag $Name: geant4-09-03 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/processes/hadronic/cross_sections/src/G4NeutronElasticXS.cc

    r1197 r1228  
    2525//
    2626// $Id: G4NeutronElasticXS.cc,v 1.3 2009/11/19 12:01:54 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     27// GEANT4 tag $Name: geant4-09-03 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/processes/hadronic/cross_sections/src/G4NeutronInelasticCrossSection.cc

    r819 r1228  
    2626// By JPW, working, but to be cleaned up. @@@
    2727// 22 Dec 2006 - DHW added isotope dependence
     28// G.Folger, 25-Nov-2009: extend to 100TeV, using a constant above 20GeV
    2829//
    2930
     
    6465GetCrossSection(G4double anEnergy, G4double atomicNumber, G4double nOfProtons)
    6566{
     67  if (anEnergy > 19.9*GeV )
     68  { // constant cross section above ~20GeV.
     69    return  GetCrossSection(19.8*GeV,atomicNumber,nOfProtons);
     70  }
    6671  G4double kineticEnergy = std::log10(DBL_MIN/MeV);
    6772  if (anEnergy > DBL_MIN/MeV) kineticEnergy = std::log10(anEnergy/MeV);
  • trunk/source/processes/hadronic/cross_sections/src/G4NeutronInelasticXS.cc

    r1197 r1228  
    2525//
    2626// $Id: G4NeutronInelasticXS.cc,v 1.3 2009/11/19 12:00:40 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     27// GEANT4 tag $Name: geant4-09-03 $
    2828//
    2929// -------------------------------------------------------------------
  • trunk/source/processes/hadronic/cross_sections/src/G4PhotoNuclearCrossSection.cc

    r1196 r1228  
    2626//
    2727// The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
    28 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03 $
    2929//
    3030//
  • trunk/source/processes/hadronic/cross_sections/src/G4PiData.cc

    r1196 r1228  
    2424// ********************************************************************
    2525//
    26 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     26// GEANT4 tag $Name: geant4-09-03 $
    2727//
    2828// --------------------------------------------------------------------
  • trunk/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc

    r962 r1228  
    4343  .02, .04, .06, .08,  .1, .12, .13, .14, .15, .16, .17, .18, .19, .20,
    4444  .22, .24, .26, .28, .30, .35, .40, .45,  0.5, 0.55, 0.6, 0.7,  0.8,  0.9,
    45    1,   2,   3,   5,  10,   20,   50,  100,  500, 1000};
     45   1,   2,   3,   5,  10,   20,   50,  100,  500, 100000};
    4646
    4747 const G4double G4PiNuclearCrossSection::he_t[38] = {
     
    7676  .02, .04, .06, .08, .10, .11, .12, .13, .14,  .15, .16, .17, .18, .20, .22,
    7777  .24, .26, .28, .30, .35, .40, .45, .50, .55, .575, .60, .70, .80, .90,   1,   
    78     2,   3,   5,  10,  20,  50, 100, 500, 1000};
     78    2,   3,   5,  10,  20,  50, 100, 500, 100000};
    7979
    8080 const G4double G4PiNuclearCrossSection::c_m_t[39] = {
     
    117117  .02, .04, .06, .08, .10, .12, .14, .16, .18, .20, .22, .25, .30, .35, .40,
    118118  .45, .50, .60, .70, .80, .90,   1,   2,   3,   5,  10,  20,  50, 100, 500,
    119   1000};
     119  100000};
    120120
    121121 const G4double G4PiNuclearCrossSection::o_m_t[31] = {
     
    158158  0.02, 0.04, 0.06, 0.08, 0.10, 0.12, 0.14, 0.16, 0.18, 0.20, 0.22, 0.25, 0.30, 0.35, 0.40,
    159159  0.45, 0.50, 0.60, 0.70, 0.80, 0.90,    1,    2,    3,    5,   10,   20,   50,  100,  500,
    160   1000};
     160  100000};
    161161
    162162 const G4double G4PiNuclearCrossSection::al_m_t[31] = {
     
    200200  0.02, 0.04, 0.06, 0.08, 0.10, 0.12, 0.14, 0.16, 0.18, 0.20, 0.22, 0.25, 0.30, 0.35, 0.40,
    201201  0.45, 0.50, 0.55, 0.60, 0.70, 0.80, 0.90,    1,    2,    3,    5,   10,   20,   50,  100,
    202    500, 1000};
     202   500, 100000};
    203203
    204204 const G4double G4PiNuclearCrossSection::fe_m_t[32] = {1175, 1363, 1670, 1950, 2050, 2040, 1975, 1886, 1834, 1773, 1720, 1635, 1474, 1380, 1269, 1225, 1182, 1162, 1159, 1162, 1178, 1190, 1197, 1102, 1135,  975,  945,  925,  905,  905,  905,  905};
     
    214214  0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.10, 0.12, 0.14, 0.16, 0.18, 0.20, 0.22, 0.25,
    215215  0.30, 0.35, 0.40, 0.45, 0.50, 0.60, 0.70, 0.80, 0.90,    1,    2,    3,    5,   10,   20,
    216     50,  100,  500, 1000};
     216    50,  100,  500, 100000};
    217217
    218218 const G4double G4PiNuclearCrossSection::mo_m_t[34] = {2430, 2610, 2710, 2790, 2880, 2940, 2965, 2970, 2970, 2920, 2840, 2720, 2570, 2500, 2365, 2200, 2050, 1926, 1825, 1768, 1749, 1750, 1778, 1789, 1808, 1690, 1645, 1530, 1492, 1450, 1425, 1425, 1425, 1425};
     
    228228  0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.10, 0.12, 0.14, 0.16, 0.18, 0.20, 0.22, 0.25, 
    229229  0.30, 0.35, 0.40, 0.45, 0.50, 0.55, 0.60, 0.70, 0.80, 0.90,    1,    2,    3,    5,   10,   
    230     20,   50,  100,  500, 1000};
     230    20,   50,  100,  500, 100000};
    231231
    232232 const G4double G4PiNuclearCrossSection::sn_m_t[35] =  {3000, 3180, 3250, 3300, 3300, 3410, 3470, 3450, 3410, 3350, 3280, 3200, 3120, 3050, 2900, 2630, 2500, 2325, 2190, 2100, 2060, 2055, 2055, 2055, 2067, 2085, 2000, 1900, 1835, 1770, 1720, 1700, 1695, 1695, 1695};
     
    242242  0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.10, 0.12, 0.14, 0.16, 0.18, 0.20, 0.22, 0.25,
    243243  0.30, 0.35, 0.40, 0.45, 0.50, 0.55, 0.60, 0.70, 0.80, 0.90,    1,    2,    3,    5,   10,
    244     20,   50,  100,  500, 1000};
     244    20,   50,  100,  500, 100000};
    245245
    246246 const G4double G4PiNuclearCrossSection::pb_m_t[35] = {
  • trunk/source/processes/hadronic/cross_sections/src/G4ProtonInelasticCrossSection.cc

    r819 r1228  
    2727// G.Folger, 29-sept-2006: extend to 1TeV, using a constant above 20GeV
    2828// 22 Dec 2006 - DHW added isotope dependence
     29// G.Folger, 25-Nov-2009: extend to 100TeV, using a constant above 20GeV
    2930//
    3031
  • trunk/source/processes/hadronic/cross_sections/src/G4TripathiLightCrossSection.cc

    r1196 r1228  
    153153  pT = pT + pP;
    154154  G4double E_cm = (pT.mag()-mT-pP.m())/MeV;
    155   if(E_cm <= DBL_MIN) return result; 
    156 
    157 
    158155//
    159156//
     
    172169
    173170  G4double B = 1.44 * ZP * ZT / Radius;
    174   if(E_cm <= B) return result;
    175 
     171//
    176172//
    177173// Now determine other parameters associated with the parametric
     
    291287           std::pow((std::pow(AT,third) + std::pow(AP,third) + deltaE),2.0) *
    292288           (1.0 - R_c*B/E_cm) * X_m;
    293   if(result < 0.0) result = 0.0;
    294   /*
    295289  if (!lowEnergyCheck)
    296290  {
    297     if (result < 0.0)  result = 0.0;
     291    if (result < 0.0)
     292      result = 0.0;
    298293    else if (E < 6.0*MeV)
    299294    {
     
    301296      G4DynamicParticle slowerProjectile = *theProjectile;
    302297      slowerProjectile.SetKineticEnergy(f * EA * MeV);
    303       G4TripathiLightCrossSection theTripathiLightCrossSection;
    304       theTripathiLightCrossSection.SetLowEnergyCheck(true);
     298      // G4TripathiLightCrossSection theTripathiLightCrossSection; // MHM 20090824 Not needed
     299          // theTripathiLightCrossSection.SetLowEnergyCheck(true);
     300          G4bool savelowenergy=lowEnergyCheck;
     301          SetLowEnergyCheck(true);
    305302      G4double resultp =
    306         theTripathiLightCrossSection.GetIsoZACrossSection
    307         (&slowerProjectile, ZZ, AA, 0.0);
     303        GetIsoZACrossSection(&slowerProjectile, ZZ, AA, 0.0);
     304          SetLowEnergyCheck(savelowenergy);
    308305      if (resultp >result) result = 0.0;
    309306    }
    310307  }
    311   */
     308
    312309  return result;
    313310}
  • trunk/source/processes/hadronic/cross_sections/src/G4VCrossSectionDataSet.cc

    r1196 r1228  
    2525//
    2626// $Id: G4VCrossSectionDataSet.cc,v 1.8 2009/01/24 11:54:47 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-03-cand-01 $
     27// GEANT4 tag $Name: geant4-09-03 $
    2828//
    2929// -------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.