53 const G4int G4XPDGTotal::nFit = 5;
 
   55 const G4double G4XPDGTotal::ppPDGFit[5] =       { 3., 40000., 18.256,   60.19,   33.43 };
 
   57 const G4double G4XPDGTotal::npPDGFit[5] =        { 3.,     40., 18.256,   61.14,   29.80 };
 
   59 const G4double G4XPDGTotal::pipPDGFit[5] =       { 3.,     40., 11.568,   27.55,    5.62 }; 
 
   61 const G4double G4XPDGTotal::KpPDGFit[5] =        { 3.,     40., 10.376,   15.57,   13.19 };
 
   63 const G4double G4XPDGTotal::KnPDGFit[5] =        { 3.,     40., 10.376,   14.29,    7.38 };
 
   65 const G4double G4XPDGTotal::gammapPDGFit[5] =    { 3.,    300.,  0.0577,   0.1171,  0. };
 
   67 const G4double G4XPDGTotal::gammagammaPDGFit[5] = { 3.,    300.,  0.000156, 0.00032, 0. };
 
   95   std::vector<G4double> nnData;
 
   96   std::vector<G4double> ppData;
 
   97   std::vector<G4double> pnData;
 
   98   std::vector<G4double> pipData;
 
   99   std::vector<G4double> KpData;
 
  100   std::vector<G4double> KnData;
 
  101   std::vector<G4double> gpData;
 
  102   std::vector<G4double> ggData;
 
  107       nnData.push_back(ppPDGFit[i] * 
GeV); 
 
  108       ppData.push_back(ppPDGFit[i] * GeV); 
 
  109       pnData.push_back(npPDGFit[i] * GeV); 
 
  110       pipData.push_back(pipPDGFit[i] * GeV); 
 
  111       KpData.push_back(KpPDGFit[i] * GeV); 
 
  112       KnData.push_back(KnPDGFit[i] * GeV); 
 
  113       gpData.push_back(gammapPDGFit[i] * GeV); 
 
  114       ggData.push_back(gammagammaPDGFit[i] * GeV); 
 
  116   for (i=2; i<nFit; i++) 
 
  118       nnData.push_back(ppPDGFit[i]); 
 
  119       ppData.push_back(ppPDGFit[i]); 
 
  120       pnData.push_back(npPDGFit[i]); 
 
  121       pipData.push_back(pipPDGFit[i]); 
 
  122       KpData.push_back(KpPDGFit[i]); 
 
  123       KnData.push_back(KnPDGFit[i]); 
 
  124       gpData.push_back(gammapPDGFit[i]); 
 
  125       ggData.push_back(gammagammaPDGFit[i]); 
 
  130   xMap[piPlusp] = pipData;
 
  131   xMap[piMinusp] = pipData;
 
  132   xMap[KPlusp] = KpData;
 
  133   xMap[KPlusn] = KnData;
 
  134   xMap[KMinusp] = KpData;
 
  135   xMap[KMinusn] = KnData;
 
  171   if ( (enc1 < 0 && enc2 >0) || (enc2 < 0 && enc1 >0) ) coeff = 1.;
 
  174   std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> trkPair(def1,def2);
 
  177     trkPair = std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *>(def2,def1);
 
  179   std::vector<G4double> 
data;   
 
  181   if (xMap.find(trkPair) != xMap.end())
 
  184       PairDoubleMap::const_iterator iter;
 
  185       for (iter = xMap.begin(); iter != xMap.end(); ++iter)
 
  187       std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> thePair = (*iter).first;
 
  188       if (thePair == trkPair)
 
  190           data = (*iter).second;
 
  205           if (sqrtS < eMinFit || sqrtS > eMaxFit)
 
  207               G4cout << 
"WARNING! G4XPDGTotal::PDGTotal extrapolating cross section at "  
  209                << 
" GeV outside the PDG fit range " 
  210                << eMinFit / 
GeV << 
" - " << eMaxFit / 
GeV << 
" GeV " << 
G4endl;
 
  223           G4cout << 
"WARNING! G4XPDGTotal::PDGTotal "       
  224              << name1 << 
"-" << name2 
 
  225              << 
" total cross section: Ecm "  
  226              << sqrtS / GeV << 
" GeV, negative cross section "  
static G4Pow * GetInstance()
 
G4double powA(G4double A, G4double y) const 
 
static G4KaonPlus * KaonPlusDefinition()
 
static G4KaonMinus * KaonMinusDefinition()
 
static G4Proton * ProtonDefinition()
 
G4int GetPDGEncoding() const 
 
const G4String & GetParticleName() const 
 
const XML_Char const XML_Char * data
 
virtual G4bool IsValid(G4double e) const 
 
G4GLOB_DLL std::ostream G4cout
 
static G4PionMinus * PionMinusDefinition()
 
static G4PionPlus * PionPlusDefinition()
 
G4bool operator==(const G4XPDGTotal &right) const 
 
virtual G4String Name() const 
 
G4double GetPDGMass() const 
 
static constexpr double GeV
 
const G4LorentzVector & Get4Momentum() const 
 
virtual G4double CrossSection(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const 
 
const G4ParticleDefinition * GetDefinition() const 
 
static G4Neutron * NeutronDefinition()
 
double epsilon(double density, double temperature)
 
static constexpr double millibarn
 
G4bool InLimits(G4double e, G4double eLow, G4double eHigh) const 
 
static G4Gamma * GammaDefinition()
 
G4bool operator!=(const G4XPDGTotal &right) const