86 std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *>
pp(proton,proton);
87 std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *>
pn(proton,neutron);
88 std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> piPlusp(piPlus,proton);
89 std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> piMinusp(piMinus,proton);
90 std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> KPlusp(KPlus,proton);
91 std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> KMinusp(KMinus,proton);
92 std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *>
nn(neutron,neutron);
93 std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> ppbar(proton,antiproton);
94 std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> npbar(antiproton,neutron);
96 std::vector<G4double> ppData;
97 std::vector<G4double> pPiPlusData;
98 std::vector<G4double> pPiMinusData;
99 std::vector<G4double> pKPlusData;
100 std::vector<G4double> pKMinusData;
101 std::vector<G4double> ppbarData;
102 std::vector<G4double> npbarData;
116 for (i=2; i<
nPar; i++)
130 xMap[piPlusp] = pPiPlusData;
131 xMap[piMinusp] = pPiMinusData;
132 xMap[KPlusp] = pKPlusData;
133 xMap[KMinusp] = pKMinusData;
134 xMap[ppbar] = ppbarData;
135 xMap[npbar] = npbarData;
172 if (m_max > 0. && sqrtS > (m_1 + m_2))
174 pLab = std::sqrt( (sqrtS*sqrtS - (m_1+m_2)*(m_1+m_2) ) * (sqrtS*sqrtS - (m_1-m_2)*(m_1-m_2)) ) / (2*m_max);
179 std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> trkPair(def1,def2);
181 trkPair = std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *>(def2,def1);
183 std::vector<G4double>
data;
196 if (
xMap.find(trkPair) !=
xMap.end())
198 PairDoubleMap::const_iterator iter;
199 for (iter =
xMap.begin(); iter !=
xMap.end(); ++iter)
201 std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> thePair = (*iter).first;
202 if (thePair == trkPair)
204 data = (*iter).second;
213 if (pLab < pMinFit)
return 0.0;
215 G4cout <<
"WARNING! G4XPDGElastic::PDGElastic "
218 <<
" elastic cross section: momentum "
219 << pLab /
GeV <<
" GeV outside valid fit range "
220 << pMinFit /
GeV <<
"-" << pMaxFit /
GeV
235 G4cout <<
"G4XPDGElastic::CrossSection - Data not found in Map" <<
G4endl;
241 G4cout <<
"WARNING! G4XPDGElastic::PDGElastic "
243 <<
" elastic cross section: momentum "
244 << pLab <<
" GeV, negative cross section "