Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/im_r_matrix/src/G4XPDGElastic.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/hadronic/models/im_r_matrix/src/G4XPDGElastic.cc (Version 11.3.0) and /processes/hadronic/models/im_r_matrix/src/G4XPDGElastic.cc (Version 9.6)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 //                                                 26 //
                                                   >>  27 // $Id: G4XPDGElastic.cc,v 1.4 2010-03-12 15:45:18 gunter Exp $ //
 27 // -------------------------------------------     28 // -------------------------------------------------------------------
 28 //                                                 29 //      
 29 // PDG  Elastic cross section                      30 // PDG  Elastic cross section 
 30 // PDG fits, Phys.Rev. D50 (1994), 1335            31 // PDG fits, Phys.Rev. D50 (1994), 1335
 31 //                                                 32 //
 32 //                                                 33 //
 33 // -------------------------------------------     34 // -------------------------------------------------------------------
 34                                                    35 
 35 #include "globals.hh"                              36 #include "globals.hh"
 36 #include "G4ios.hh"                                37 #include "G4ios.hh"
 37 #include "G4Log.hh"                            << 
 38 #include "G4Pow.hh"                            << 
 39 #include "G4SystemOfUnits.hh"                      38 #include "G4SystemOfUnits.hh"
 40 #include "G4XPDGElastic.hh"                        39 #include "G4XPDGElastic.hh"
 41 #include "G4KineticTrack.hh"                       40 #include "G4KineticTrack.hh"
 42 #include "G4ParticleDefinition.hh"                 41 #include "G4ParticleDefinition.hh"
 43 #include "G4DataVector.hh"                         42 #include "G4DataVector.hh"
 44                                                    43 
 45 #include "G4AntiProton.hh"                         44 #include "G4AntiProton.hh"
 46 #include "G4AntiNeutron.hh"                        45 #include "G4AntiNeutron.hh"
 47 #include "G4Proton.hh"                             46 #include "G4Proton.hh"
 48 #include "G4Neutron.hh"                            47 #include "G4Neutron.hh"
 49 #include "G4PionPlus.hh"                           48 #include "G4PionPlus.hh"
 50 #include "G4PionMinus.hh"                          49 #include "G4PionMinus.hh"
 51 #include "G4KaonMinus.hh"                          50 #include "G4KaonMinus.hh"
 52 #include "G4KaonPlus.hh"                           51 #include "G4KaonPlus.hh"
 53                                                    52 
 54 const G4double G4XPDGElastic::_lowLimit = 5. *     53 const G4double G4XPDGElastic::_lowLimit = 5. * GeV;
 55 const G4double G4XPDGElastic::_highLimit = DBL     54 const G4double G4XPDGElastic::_highLimit = DBL_MAX;
 56                                                    55 
 57 // Parameters of the PDG Elastic cross-section     56 // Parameters of the PDG Elastic cross-section fit (Rev. Particle Properties, 1998)
 58 // Columns are: lower and higher fit range, X,     57 // Columns are: lower and higher fit range, X, Y1, Y2
 59 const G4int G4XPDGElastic::nPar = 7;               58 const G4int G4XPDGElastic::nPar = 7;
 60 // p pi+                                           59 // p pi+
 61 const G4double G4XPDGElastic::pPiPlusPDGFit[7]     60 const G4double G4XPDGElastic::pPiPlusPDGFit[7] =  { 2.,     200.,   0.,   11.4, -0.4,  0.079,  0. };
 62 // p pi-                                           61 // p pi-
 63 const G4double G4XPDGElastic::pPiMinusPDGFit[7     62 const G4double G4XPDGElastic::pPiMinusPDGFit[7] = { 2.,     360.,   1.76, 11.2, -0.64, 0.043,  0. };
 64 // p K+                                            63 // p K+
 65 const G4double G4XPDGElastic::pKPlusPDGFit[7]      64 const G4double G4XPDGElastic::pKPlusPDGFit[7] =   { 2.,     175.,    5.0,  8.1, -1.8,  0.16,  -1.3 }; 
 66 // p K-                                            65 // p K-
 67 const G4double G4XPDGElastic::pKMinusPDGFit[7]     66 const G4double G4XPDGElastic::pKMinusPDGFit[7] =  { 2.,     175.,    7.3,  0.,   0.,   0.29,  -2.40 };
 68 // p p                                             67 // p p
 69 const G4double G4XPDGElastic::ppPDGFit[7] =        68 const G4double G4XPDGElastic::ppPDGFit[7] =       { 2.,    2100.,   11.9, 26.9, -1.21, 0.169, -1.85 };
 70 // p pbar                                          69 // p pbar
 71 const G4double G4XPDGElastic::ppbarPDGFit[7] =     70 const G4double G4XPDGElastic::ppbarPDGFit[7] =    { 5., 1730000.,   10.2, 52.7, -1.16, 0.125, -1.28 };
 72 // n pbar                                          71 // n pbar
 73 const G4double G4XPDGElastic::npbarPDGFit[7] =     72 const G4double G4XPDGElastic::npbarPDGFit[7] =    { 1.1,      5.55, 36.5,  0.,   0.,   0.,    -11.9 };
 74                                                    73 
 75                                                    74 
 76 G4XPDGElastic::G4XPDGElastic()                     75 G4XPDGElastic::G4XPDGElastic() 
 77 {                                                  76 {
 78   const G4ParticleDefinition * proton = G4Prot <<  77   G4ParticleDefinition * proton = G4Proton::ProtonDefinition();
 79   const G4ParticleDefinition * neutron = G4Neu <<  78   G4ParticleDefinition * neutron = G4Neutron::NeutronDefinition();
 80   const G4ParticleDefinition * piPlus = G4Pion <<  79   G4ParticleDefinition * piPlus = G4PionPlus::PionPlusDefinition();
 81   const G4ParticleDefinition * piMinus = G4Pio <<  80   G4ParticleDefinition * piMinus = G4PionMinus::PionMinusDefinition();
 82   const G4ParticleDefinition * KPlus = G4KaonP <<  81   G4ParticleDefinition * KPlus = G4KaonPlus::KaonPlusDefinition();
 83   const G4ParticleDefinition * KMinus = G4Kaon <<  82   G4ParticleDefinition * KMinus = G4KaonMinus::KaonMinusDefinition();
 84   const G4ParticleDefinition * antiproton = G4 <<  83   G4ParticleDefinition * antiproton = G4AntiProton::AntiProtonDefinition();
 85                                                    84   
 86   std::pair<const G4ParticleDefinition *,const <<  85   std::pair<G4ParticleDefinition *,G4ParticleDefinition *> pp(proton,proton);
 87   std::pair<const G4ParticleDefinition *,const <<  86   std::pair<G4ParticleDefinition *,G4ParticleDefinition *> pn(proton,neutron);
 88   std::pair<const G4ParticleDefinition *,const <<  87   std::pair<G4ParticleDefinition *,G4ParticleDefinition *> piPlusp(piPlus,proton);
 89   std::pair<const G4ParticleDefinition *,const <<  88   std::pair<G4ParticleDefinition *,G4ParticleDefinition *> piMinusp(piMinus,proton);
 90   std::pair<const G4ParticleDefinition *,const <<  89   std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KPlusp(KPlus,proton);
 91   std::pair<const G4ParticleDefinition *,const <<  90   std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KMinusp(KMinus,proton);
 92   std::pair<const G4ParticleDefinition *,const <<  91   std::pair<G4ParticleDefinition *,G4ParticleDefinition *> nn(neutron,neutron);
 93   std::pair<const G4ParticleDefinition *,const <<  92   std::pair<G4ParticleDefinition *,G4ParticleDefinition *> ppbar(proton,antiproton);
 94   std::pair<const G4ParticleDefinition *,const <<  93   std::pair<G4ParticleDefinition *,G4ParticleDefinition *> npbar(antiproton,neutron);
 95                                                    94 
 96   std::vector<G4double> ppData;                    95   std::vector<G4double> ppData;
 97   std::vector<G4double> pPiPlusData;               96   std::vector<G4double> pPiPlusData;
 98   std::vector<G4double> pPiMinusData;              97   std::vector<G4double> pPiMinusData;
 99   std::vector<G4double> pKPlusData;                98   std::vector<G4double> pKPlusData;
100   std::vector<G4double> pKMinusData;               99   std::vector<G4double> pKMinusData;
101   std::vector<G4double> ppbarData;                100   std::vector<G4double> ppbarData;
102   std::vector<G4double> npbarData;                101   std::vector<G4double> npbarData;
103                                                   102 
104   G4int i;                                        103   G4int i;
105   for (i=0; i<2; i++)                             104   for (i=0; i<2; i++) 
106     {                                             105     {      
107       ppData.push_back(ppPDGFit[i] * GeV);        106       ppData.push_back(ppPDGFit[i] * GeV); 
108       pPiPlusData.push_back(pPiPlusPDGFit[i] *    107       pPiPlusData.push_back(pPiPlusPDGFit[i] * GeV); 
109       pPiMinusData.push_back(pPiMinusPDGFit[i]    108       pPiMinusData.push_back(pPiMinusPDGFit[i] * GeV); 
110       pKPlusData.push_back(pKPlusPDGFit[i] * G    109       pKPlusData.push_back(pKPlusPDGFit[i] * GeV); 
111       pKMinusData.push_back(pKMinusPDGFit[i] *    110       pKMinusData.push_back(pKMinusPDGFit[i] * GeV); 
112       ppbarData.push_back(ppbarPDGFit[i] * GeV    111       ppbarData.push_back(ppbarPDGFit[i] * GeV);
113       npbarData.push_back(npbarPDGFit[i] * GeV    112       npbarData.push_back(npbarPDGFit[i] * GeV);
114     }                                             113     }
115                                                   114 
116   for (i=2; i<nPar; i++)                          115   for (i=2; i<nPar; i++) 
117     {                                             116     {      
118       ppData.push_back(ppPDGFit[i]);              117       ppData.push_back(ppPDGFit[i]); 
119       pPiPlusData.push_back(pPiPlusPDGFit[i]);    118       pPiPlusData.push_back(pPiPlusPDGFit[i]); 
120       pPiMinusData.push_back(pPiMinusPDGFit[i]    119       pPiMinusData.push_back(pPiMinusPDGFit[i]); 
121       pKPlusData.push_back(pKPlusPDGFit[i]);      120       pKPlusData.push_back(pKPlusPDGFit[i]); 
122       pKMinusData.push_back(pKMinusPDGFit[i]);    121       pKMinusData.push_back(pKMinusPDGFit[i]); 
123       ppbarData.push_back(ppbarPDGFit[i]);        122       ppbarData.push_back(ppbarPDGFit[i]);
124       npbarData.push_back(npbarPDGFit[i]);        123       npbarData.push_back(npbarPDGFit[i]);
125     }                                             124     }
126                                                   125 
127   xMap[nn] = ppData;                              126   xMap[nn] = ppData;
128   xMap[pp] = ppData;                              127   xMap[pp] = ppData;
129   xMap[pn] = std::move(ppData);                << 128   xMap[pn] = ppData;
130   xMap[piPlusp] = std::move(pPiPlusData);      << 129   xMap[piPlusp] = pPiPlusData;
131   xMap[piMinusp] = std::move(pPiMinusData);    << 130   xMap[piMinusp] = pPiMinusData;
132   xMap[KPlusp] = std::move(pKPlusData);        << 131   xMap[KPlusp] = pKPlusData;
133   xMap[KMinusp] = std::move(pKMinusData);      << 132   xMap[KMinusp] = pKMinusData;
134   xMap[ppbar] = std::move(ppbarData);          << 133   xMap[ppbar] = ppbarData;
135   xMap[npbar] = std::move(npbarData);          << 134   xMap[npbar] = npbarData;
136 }                                                 135 }
137                                                   136 
138                                                   137 
139 G4XPDGElastic::~G4XPDGElastic()                   138 G4XPDGElastic::~G4XPDGElastic()
140 { }                                               139 { }
141                                                   140 
142                                                   141 
143 G4bool G4XPDGElastic::operator==(const G4XPDGE    142 G4bool G4XPDGElastic::operator==(const G4XPDGElastic &right) const
144 {                                                 143 {
145   return (this == (G4XPDGElastic *) &right);      144   return (this == (G4XPDGElastic *) &right);
146 }                                                 145 }
147                                                   146 
148                                                   147 
149 G4bool G4XPDGElastic::operator!=(const G4XPDGE    148 G4bool G4XPDGElastic::operator!=(const G4XPDGElastic &right) const
150 {                                                 149 {
151   return (this != (G4XPDGElastic *) &right);      150   return (this != (G4XPDGElastic *) &right);
152 }                                                 151 }
153                                                   152 
154                                                   153 
155 G4double G4XPDGElastic::CrossSection(const G4K    154 G4double G4XPDGElastic::CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const
156 {                                                 155 {
157   // Elastic Cross-section fit, 1994 Review of    156   // Elastic Cross-section fit, 1994 Review of Particle Properties, (1994), 1
158                                                   157 
159   G4double sigma = 0.;                            158   G4double sigma = 0.;
160                                                   159 
161   const G4ParticleDefinition* def1 = trk1.GetD << 160   G4ParticleDefinition* def1 = trk1.GetDefinition();
162   const G4ParticleDefinition* def2 = trk2.GetD << 161   G4ParticleDefinition* def2 = trk2.GetDefinition();
163                                                   162   
164   G4double sqrtS = (trk1.Get4Momentum() + trk2    163   G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag();
165   G4double m_1 = def1->GetPDGMass();              164   G4double m_1 = def1->GetPDGMass();
166   G4double m_2 = def2->GetPDGMass();              165   G4double m_2 = def2->GetPDGMass();
167   G4double m_max = std::max(m_1,m_2);             166   G4double m_max = std::max(m_1,m_2);
168   //  if (m1 > m) m = m1;                         167   //  if (m1 > m) m = m1;
169                                                   168   
170   G4double pLab = 0.;                             169   G4double pLab = 0.;
171                                                   170 
172   if (m_max > 0. && sqrtS > (m_1 + m_2))          171   if (m_max > 0. && sqrtS > (m_1 + m_2)) 
173     {                                             172     {
174       pLab = std::sqrt( (sqrtS*sqrtS - (m_1+m_    173       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);
175                                                   174       
176       // The PDG fit formula requires p in GeV    175       // The PDG fit formula requires p in GeV/c
177                                                   176       
178       // Order the pair: first is the lower ma    177       // Order the pair: first is the lower mass particle, second is the higher mass one
179       std::pair<const G4ParticleDefinition *,c << 178       std::pair<G4ParticleDefinition *,G4ParticleDefinition *> trkPair(def1,def2);
180       if (def1->GetPDGMass() > def2->GetPDGMas    179       if (def1->GetPDGMass() > def2->GetPDGMass())
181   trkPair = std::pair<const G4ParticleDefiniti << 180   trkPair = std::pair<G4ParticleDefinition *,G4ParticleDefinition *>(def2,def1);
182                                                   181       
183       std::vector<G4double> data;                 182       std::vector<G4double> data; 
184       G4double pMinFit = 0.;                      183       G4double pMinFit = 0.;
185       G4double pMaxFit = 0.;                      184       G4double pMaxFit = 0.;
186       G4double aFit = 0.;                         185       G4double aFit = 0.;
187       G4double bFit = 0.;                         186       G4double bFit = 0.;
188       G4double cFit = 0.;                         187       G4double cFit = 0.;
189       G4double dFit = 0.;                         188       G4double dFit = 0.;
190       G4double nFit = 0.;                         189       G4double nFit = 0.;
191                                                   190 
192       // Debug                                    191       // Debug
193 //      G4cout << "Map has " << xMap.size() <<    192 //      G4cout << "Map has " << xMap.size() << " elements" << G4endl;
194       // Debug end                                193       // Debug end
195                                                   194  
196       if (xMap.find(trkPair) != xMap.end())       195       if (xMap.find(trkPair) != xMap.end())
197   {                                               196   {
198     PairDoubleMap::const_iterator iter;           197     PairDoubleMap::const_iterator iter;
199     for (iter = xMap.begin(); iter != xMap.end    198     for (iter = xMap.begin(); iter != xMap.end(); ++iter)
200       {                                           199       {
201         std::pair<const G4ParticleDefinition * << 200         std::pair<G4ParticleDefinition *,G4ParticleDefinition *> thePair = (*iter).first;
202         if (thePair == trkPair)                   201         if (thePair == trkPair)
203     {                                             202     {
204       data = (*iter).second;                      203       data = (*iter).second;
205       pMinFit = data[0];                          204       pMinFit = data[0];
206       pMaxFit = data[1];                          205       pMaxFit = data[1];
207       aFit = data[2];                             206       aFit = data[2];
208       bFit = data[3];                             207       bFit = data[3];
209       cFit = data[5];                             208       cFit = data[5];
210       dFit = data[6];                             209       dFit = data[6];
211       nFit = data[4];                             210       nFit = data[4];
212                                                   211         
213       if (pLab < pMinFit) return 0.0;             212       if (pLab < pMinFit) return 0.0;
214       if (pLab > pMaxFit )                        213       if (pLab > pMaxFit )
215         G4cout << "WARNING! G4XPDGElastic::PDG    214         G4cout << "WARNING! G4XPDGElastic::PDGElastic " 
216          << trk1.GetDefinition()->GetParticleN    215          << trk1.GetDefinition()->GetParticleName() << "-" 
217          << trk2.GetDefinition()->GetParticleN    216          << trk2.GetDefinition()->GetParticleName() 
218          << " elastic cross section: momentum     217          << " elastic cross section: momentum " 
219          << pLab / GeV << " GeV outside valid     218          << pLab / GeV << " GeV outside valid fit range " 
220          << pMinFit /GeV << "-" << pMaxFit / G    219          << pMinFit /GeV << "-" << pMaxFit / GeV
221          << G4endl;                               220          << G4endl;
222                                                   221       
223       pLab /= GeV;                                222       pLab /= GeV;
224       if (pLab > 0.)                              223       if (pLab > 0.) 
225         {                                         224         {
226           G4double logP = G4Log(pLab);         << 225           G4double logP = std::log(pLab);
227           sigma = aFit + bFit * G4Pow::GetInst << 226           sigma = aFit + bFit * std::pow(pLab, nFit) + cFit * logP*logP + dFit * logP;
228           sigma = sigma * millibarn;              227           sigma = sigma * millibarn;
229         }                                         228         }
230     }                                             229     }
231       }                                           230       }
232   }                                               231   }
233       else                                        232       else
234   {                                               233   {
235     G4cout << "G4XPDGElastic::CrossSection - D    234     G4cout << "G4XPDGElastic::CrossSection - Data not found in Map" << G4endl;
236   }                                               235   }
237     }                                             236     }
238                                                   237   
239   if (sigma < 0.)                                 238   if (sigma < 0.)
240     {                                             239     {
241       G4cout << "WARNING! G4XPDGElastic::PDGEl    240       G4cout << "WARNING! G4XPDGElastic::PDGElastic "      
242        << def1->GetParticleName() << "-" << de    241        << def1->GetParticleName() << "-" << def2->GetParticleName()
243        << " elastic cross section: momentum "     242        << " elastic cross section: momentum " 
244        << pLab << " GeV, negative cross sectio    243        << pLab << " GeV, negative cross section " 
245        << sigma / millibarn << " mb set to 0"     244        << sigma / millibarn << " mb set to 0" << G4endl;
246       sigma = 0.;                                 245       sigma = 0.;
247     }                                             246     }
248                                                   247   
249   return sigma;                                   248   return sigma;
250 }                                                 249 }
251                                                   250 
252                                                   251 
253 G4String G4XPDGElastic::Name() const              252 G4String G4XPDGElastic::Name() const
254 {                                                 253 {
255   G4String name = "PDGElastic ";                  254   G4String name = "PDGElastic ";
256   return name;                                    255   return name;
257 }                                                 256 }
258                                                   257 
259                                                   258 
260 G4bool G4XPDGElastic::IsValid(G4double e) cons    259 G4bool G4XPDGElastic::IsValid(G4double e) const
261 {                                                 260 {
262   G4bool answer = InLimits(e,_lowLimit,_highLi    261   G4bool answer = InLimits(e,_lowLimit,_highLimit);
263                                                   262 
264   return answer;                                  263   return answer;
265 }                                                 264 }
266                                                   265 
267                                                   266 
268                                                   267 
269                                                   268 
270                                                   269 
271                                                   270 
272                                                   271 
273                                                   272 
274                                                   273 
275                                                   274 
276                                                   275 
277                                                   276