Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNuclearPotentialIsospin.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/inclxx/incl_physics/src/G4INCLNuclearPotentialIsospin.cc (Version 11.3.0) and /processes/hadronic/models/inclxx/incl_physics/src/G4INCLNuclearPotentialIsospin.cc (Version 10.5.p1)


  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 // INCL++ intra-nuclear cascade model              26 // INCL++ intra-nuclear cascade model
 27 // Alain Boudard, CEA-Saclay, France               27 // Alain Boudard, CEA-Saclay, France
 28 // Joseph Cugnon, University of Liege, Belgium     28 // Joseph Cugnon, University of Liege, Belgium
 29 // Jean-Christophe David, CEA-Saclay, France       29 // Jean-Christophe David, CEA-Saclay, France
 30 // Pekka Kaitaniemi, CEA-Saclay, France, and H     30 // Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland
 31 // Sylvie Leray, CEA-Saclay, France                31 // Sylvie Leray, CEA-Saclay, France
 32 // Davide Mancusi, CEA-Saclay, France              32 // Davide Mancusi, CEA-Saclay, France
 33 //                                                 33 //
 34 #define INCLXX_IN_GEANT4_MODE 1                    34 #define INCLXX_IN_GEANT4_MODE 1
 35                                                    35 
 36 #include "globals.hh"                              36 #include "globals.hh"
 37                                                    37 
 38 /** \file G4INCLNuclearPotentialIsospin.cc         38 /** \file G4INCLNuclearPotentialIsospin.cc
 39  * \brief Isospin-dependent nuclear potential.     39  * \brief Isospin-dependent nuclear potential.
 40  *                                                 40  *
 41  * Provides an isospin-dependent nuclear poten     41  * Provides an isospin-dependent nuclear potential.
 42  *                                                 42  *
 43  * \date 28 February 2011                          43  * \date 28 February 2011
 44  * \author Davide Mancusi                          44  * \author Davide Mancusi
 45  */                                                45  */
 46                                                    46 
 47 #include "G4INCLNuclearPotentialIsospin.hh"        47 #include "G4INCLNuclearPotentialIsospin.hh"
 48 #include "G4INCLNuclearPotentialConstant.hh"       48 #include "G4INCLNuclearPotentialConstant.hh"
 49 #include "G4INCLParticleTable.hh"                  49 #include "G4INCLParticleTable.hh"
 50 #include "G4INCLGlobals.hh"                        50 #include "G4INCLGlobals.hh"
 51                                                    51 
 52 namespace G4INCL {                                 52 namespace G4INCL {
 53                                                    53 
 54   namespace NuclearPotential {                     54   namespace NuclearPotential {
 55                                                    55 
 56     // Constructors                                56     // Constructors
 57     NuclearPotentialIsospin::NuclearPotentialI     57     NuclearPotentialIsospin::NuclearPotentialIsospin(const G4int A, const G4int Z, const G4bool aPionPotential)
 58       : INuclearPotential(A, Z, aPionPotential     58       : INuclearPotential(A, Z, aPionPotential)
 59     {                                              59     {
 60       initialize();                                60       initialize();
 61     }                                              61     }
 62                                                    62 
 63     // Destructor                                  63     // Destructor
 64     NuclearPotentialIsospin::~NuclearPotential     64     NuclearPotentialIsospin::~NuclearPotentialIsospin() {}
 65                                                    65 
 66     void NuclearPotentialIsospin::initialize()     66     void NuclearPotentialIsospin::initialize() {
 67       const G4double ZOverA = ((G4double) theZ     67       const G4double ZOverA = ((G4double) theZ) / ((G4double) theA);
 68                                                    68 
 69       const G4double mp = ParticleTable::getIN     69       const G4double mp = ParticleTable::getINCLMass(Proton);
 70       const G4double mn = ParticleTable::getIN     70       const G4double mn = ParticleTable::getINCLMass(Neutron);
 71       const G4double ml = ParticleTable::getIN     71       const G4double ml = ParticleTable::getINCLMass(Lambda);
 72                                                    72 
 73       const G4double theFermiMomentum = Partic     73       const G4double theFermiMomentum = ParticleTable::getFermiMomentum(theA,theZ);
 74                                                    74 
 75       fermiMomentum[Proton] = theFermiMomentum     75       fermiMomentum[Proton] = theFermiMomentum * Math::pow13(2.*ZOverA);
 76       const G4double theProtonFermiEnergy = st     76       const G4double theProtonFermiEnergy = std::sqrt(fermiMomentum[Proton]*fermiMomentum[Proton] + mp*mp) - mp;
 77       fermiEnergy[Proton] = theProtonFermiEner     77       fermiEnergy[Proton] = theProtonFermiEnergy;
 78       // Use separation energies from the Part     78       // Use separation energies from the ParticleTable
 79       const G4double theProtonSeparationEnergy     79       const G4double theProtonSeparationEnergy = ParticleTable::getSeparationEnergy(Proton,theA,theZ);
 80       separationEnergy[Proton] = theProtonSepa     80       separationEnergy[Proton] = theProtonSeparationEnergy;
 81       vProton = theProtonFermiEnergy + theProt     81       vProton = theProtonFermiEnergy + theProtonSeparationEnergy;
 82                                                    82 
 83       fermiMomentum[Neutron] = theFermiMomentu     83       fermiMomentum[Neutron] = theFermiMomentum * Math::pow13(2.*(1.-ZOverA));
 84       const G4double theNeutronFermiEnergy = s     84       const G4double theNeutronFermiEnergy = std::sqrt(fermiMomentum[Neutron]*fermiMomentum[Neutron] + mn*mn) - mn;
 85       fermiEnergy[Neutron] = theNeutronFermiEn     85       fermiEnergy[Neutron] = theNeutronFermiEnergy;
 86       // Use separation energies from the Part     86       // Use separation energies from the ParticleTable
 87       const G4double theNeutronSeparationEnerg     87       const G4double theNeutronSeparationEnergy = ParticleTable::getSeparationEnergy(Neutron,theA,theZ);
 88       separationEnergy[Neutron] = theNeutronSe     88       separationEnergy[Neutron] = theNeutronSeparationEnergy;
 89       vNeutron = theNeutronFermiEnergy + theNe     89       vNeutron = theNeutronFermiEnergy + theNeutronSeparationEnergy;
 90                                                    90 
 91       const G4double separationEnergyDeltaPlus     91       const G4double separationEnergyDeltaPlusPlus = 2.*theProtonSeparationEnergy - theNeutronSeparationEnergy;
 92       separationEnergy[DeltaPlusPlus] = separa     92       separationEnergy[DeltaPlusPlus] = separationEnergyDeltaPlusPlus;
 93       separationEnergy[DeltaPlus] = theProtonS     93       separationEnergy[DeltaPlus] = theProtonSeparationEnergy;
 94       separationEnergy[DeltaZero] = theNeutron     94       separationEnergy[DeltaZero] = theNeutronSeparationEnergy;
 95       const G4double separationEnergyDeltaMinu     95       const G4double separationEnergyDeltaMinus = 2.*theNeutronSeparationEnergy - theProtonSeparationEnergy;
 96       separationEnergy[DeltaMinus] = separatio     96       separationEnergy[DeltaMinus] = separationEnergyDeltaMinus;
 97                                                    97 
 98       const G4double tinyMargin = 1E-7;            98       const G4double tinyMargin = 1E-7;
 99       vDeltaPlus = vProton;                        99       vDeltaPlus = vProton;
100       vDeltaZero = vNeutron;                      100       vDeltaZero = vNeutron;
101       vDeltaPlusPlus = std::max(separationEner    101       vDeltaPlusPlus = std::max(separationEnergyDeltaPlusPlus + tinyMargin, 2.*vDeltaPlus - vDeltaZero);
102       vDeltaMinus = std::max(separationEnergyD    102       vDeltaMinus = std::max(separationEnergyDeltaMinus + tinyMargin, 2.*vDeltaZero - vDeltaPlus);
103                                                   103       
104       vSigmaMinus = -16.; // Repulsive potenti    104       vSigmaMinus = -16.; // Repulsive potential, from Eur. Phys.J.A. (2016) 52:21
105       vSigmaZero = -16.;  // hypothesis: same     105       vSigmaZero = -16.;  // hypothesis: same potential for each sigma
106       vSigmaPlus = -16.;                          106       vSigmaPlus = -16.;
107                                                   107 
108       vLambda = 30.;                           << 108       vLambda = 28.;
109       vantiProton = 100.;                      << 
110                                                << 
111       const G4double asy = (theA - 2.*theZ)/th    109       const G4double asy = (theA - 2.*theZ)/theA;
112       // Jose Luis Rodriguez-Sanchez et al., R << 110       if(asy>0.11)vLambda = 56.549-678.73*asy+4905.35*std::pow(asy,2.)-9789.1*std::pow(asy,3.); // Jose Luis Rodriguez-Sanchez et al., Rapid Communication PRC
113       if      (asy > 0.236) vLambda = 40.91;   << 111 
114       else if (asy > 0.133) vLambda = 56.549 - << 
115                                                << 
116       const G4double theLambdaSeparationEnergy    112       const G4double theLambdaSeparationEnergy = ParticleTable::getSeparationEnergy(Lambda,theA,theZ);
117       const G4double theantiProtonSeparationEn << 
118                                                   113 
119       separationEnergy[PiPlus] = theProtonSepa    114       separationEnergy[PiPlus] = theProtonSeparationEnergy - theNeutronSeparationEnergy;
120       separationEnergy[PiZero] = 0.;              115       separationEnergy[PiZero] = 0.;
121       separationEnergy[PiMinus] = theNeutronSe    116       separationEnergy[PiMinus] = theNeutronSeparationEnergy - theProtonSeparationEnergy;
122                                                   117 
123       separationEnergy[Eta]      = 0.;            118       separationEnergy[Eta]      = 0.;
124       separationEnergy[Omega]    = 0.;            119       separationEnergy[Omega]    = 0.;
125       separationEnergy[EtaPrime] = 0.;            120       separationEnergy[EtaPrime] = 0.;
126       separationEnergy[Photon]   = 0.;            121       separationEnergy[Photon]   = 0.;
127                                                   122       
128       separationEnergy[Lambda]    = theLambdaS    123       separationEnergy[Lambda]    = theLambdaSeparationEnergy;
129       separationEnergy[SigmaPlus] = theProtonS    124       separationEnergy[SigmaPlus] = theProtonSeparationEnergy + theLambdaSeparationEnergy - theNeutronSeparationEnergy;
130       separationEnergy[SigmaZero] = theLambdaS    125       separationEnergy[SigmaZero] = theLambdaSeparationEnergy;
131       separationEnergy[SigmaMinus]  = theNeutr    126       separationEnergy[SigmaMinus]  = theNeutronSeparationEnergy + theLambdaSeparationEnergy - theProtonSeparationEnergy;
132                                                   127 
133       separationEnergy[KPlus]   = theProtonSep    128       separationEnergy[KPlus]   = theProtonSeparationEnergy - theLambdaSeparationEnergy;
134       separationEnergy[KZero]   = (theNeutronS    129       separationEnergy[KZero]   = (theNeutronSeparationEnergy - theLambdaSeparationEnergy);
135       separationEnergy[KZeroBar]  = (theLambda    130       separationEnergy[KZeroBar]  = (theLambdaSeparationEnergy - theNeutronSeparationEnergy);
136       separationEnergy[KMinus]    = 2.*theNeut    131       separationEnergy[KMinus]    = 2.*theNeutronSeparationEnergy - theProtonSeparationEnergy-theLambdaSeparationEnergy;
137                                                   132 
138       separationEnergy[KShort]    = (theNeutro    133       separationEnergy[KShort]    = (theNeutronSeparationEnergy - theLambdaSeparationEnergy);
139       separationEnergy[KLong]   = (theNeutronS    134       separationEnergy[KLong]   = (theNeutronSeparationEnergy - theLambdaSeparationEnergy);
140                                                   135 
141       separationEnergy[antiProton]    = theant << 
142                                                << 
143       fermiEnergy[DeltaPlusPlus] = vDeltaPlusP    136       fermiEnergy[DeltaPlusPlus] = vDeltaPlusPlus - separationEnergy[DeltaPlusPlus];
144       fermiEnergy[DeltaPlus] = vDeltaPlus - se    137       fermiEnergy[DeltaPlus] = vDeltaPlus - separationEnergy[DeltaPlus];
145       fermiEnergy[DeltaZero] = vDeltaZero - se    138       fermiEnergy[DeltaZero] = vDeltaZero - separationEnergy[DeltaZero];
146       fermiEnergy[DeltaMinus] = vDeltaMinus -     139       fermiEnergy[DeltaMinus] = vDeltaMinus - separationEnergy[DeltaMinus];
147                                                   140       
148       fermiEnergy[Lambda] = vLambda - separati    141       fermiEnergy[Lambda] = vLambda - separationEnergy[Lambda];
149       if (fermiEnergy[Lambda] <= 0.)              142       if (fermiEnergy[Lambda] <= 0.)
150          fermiMomentum[Lambda]=0.;                143          fermiMomentum[Lambda]=0.;
151       else                                        144       else
152          fermiMomentum[Lambda]=std::sqrt(std::    145          fermiMomentum[Lambda]=std::sqrt(std::pow(fermiEnergy[Lambda]+ml,2.0)-ml*ml);
153                                                   146 
154       fermiEnergy[SigmaPlus] = vSigmaPlus - se    147       fermiEnergy[SigmaPlus] = vSigmaPlus - separationEnergy[SigmaPlus];
155       fermiEnergy[SigmaZero] = vSigmaZero - se    148       fermiEnergy[SigmaZero] = vSigmaZero - separationEnergy[SigmaZero];
156       fermiEnergy[SigmaMinus] = vSigmaMinus -     149       fermiEnergy[SigmaMinus] = vSigmaMinus - separationEnergy[SigmaMinus];
157                                                << 
158       fermiEnergy[antiProton] = vantiProton -  << 
159                                                   150 
160       INCL_DEBUG("Table of separation energies    151       INCL_DEBUG("Table of separation energies [MeV] for A=" << theA << ", Z=" << theZ << ":" << '\n'
161             << "  proton:  " << separationEner    152             << "  proton:  " << separationEnergy[Proton] << '\n'
162             << "  neutron: " << separationEner    153             << "  neutron: " << separationEnergy[Neutron] << '\n'
163             << "  delta++: " << separationEner    154             << "  delta++: " << separationEnergy[DeltaPlusPlus] << '\n'
164             << "  delta+:  " << separationEner    155             << "  delta+:  " << separationEnergy[DeltaPlus] << '\n'
165             << "  delta0:  " << separationEner    156             << "  delta0:  " << separationEnergy[DeltaZero] << '\n'
166             << "  delta-:  " << separationEner    157             << "  delta-:  " << separationEnergy[DeltaMinus] << '\n'
167             << "  pi+:     " << separationEner    158             << "  pi+:     " << separationEnergy[PiPlus] << '\n'
168             << "  pi0:     " << separationEner    159             << "  pi0:     " << separationEnergy[PiZero] << '\n'
169             << "  pi-:     " << separationEner    160             << "  pi-:     " << separationEnergy[PiMinus] << '\n'
170             << "  eta:     " << separationEner    161             << "  eta:     " << separationEnergy[Eta] << '\n'
171             << "  omega:   " << separationEner    162             << "  omega:   " << separationEnergy[Omega] << '\n'
172             << "  etaprime:" << separationEner    163             << "  etaprime:" << separationEnergy[EtaPrime] << '\n'
173             << "  photon:  " << separationEner    164             << "  photon:  " << separationEnergy[Photon] << '\n'
174             << "  lambda:  " << separationEner    165             << "  lambda:  " << separationEnergy[Lambda] << '\n'
175             << "  sigmaplus:  " << separationE    166             << "  sigmaplus:  " << separationEnergy[SigmaPlus] << '\n'
176             << "  sigmazero:  " << separationE    167             << "  sigmazero:  " << separationEnergy[SigmaZero] << '\n'
177             << "  sigmaminus:  " << separation    168             << "  sigmaminus:  " << separationEnergy[SigmaMinus] << '\n'
178             << "  kplus:  " << separationEnerg    169             << "  kplus:  " << separationEnergy[KPlus] << '\n'
179             << "  kzero:  " << separationEnerg    170             << "  kzero:  " << separationEnergy[KZero] << '\n'
180             << "  kzerobar:  " << separationEn    171             << "  kzerobar:  " << separationEnergy[KZeroBar] << '\n'
181             << "  kminus:  " << separationEner    172             << "  kminus:  " << separationEnergy[KMinus] << '\n'
182             << "  kshort:  " << separationEner    173             << "  kshort:  " << separationEnergy[KShort] << '\n'
183             << "  klong:  " << separationEnerg    174             << "  klong:  " << separationEnergy[KLong] << '\n'
184             );                                    175             );
185                                                   176 
186       INCL_DEBUG("Table of Fermi energies [MeV    177       INCL_DEBUG("Table of Fermi energies [MeV] for A=" << theA << ", Z=" << theZ << ":" << '\n'
187             << "  proton:  " << fermiEnergy[Pr    178             << "  proton:  " << fermiEnergy[Proton] << '\n'
188             << "  neutron: " << fermiEnergy[Ne    179             << "  neutron: " << fermiEnergy[Neutron] << '\n'
189             << "  delta++: " << fermiEnergy[De    180             << "  delta++: " << fermiEnergy[DeltaPlusPlus] << '\n'
190             << "  delta+:  " << fermiEnergy[De    181             << "  delta+:  " << fermiEnergy[DeltaPlus] << '\n'
191             << "  delta0:  " << fermiEnergy[De    182             << "  delta0:  " << fermiEnergy[DeltaZero] << '\n'
192             << "  delta-:  " << fermiEnergy[De    183             << "  delta-:  " << fermiEnergy[DeltaMinus] << '\n'
193             << "  lambda:  " << fermiEnergy[La    184             << "  lambda:  " << fermiEnergy[Lambda] << '\n'
194             << "  sigma+:  " << fermiEnergy[Si    185             << "  sigma+:  " << fermiEnergy[SigmaPlus] << '\n'
195             << "  sigma0:  " << fermiEnergy[Si    186             << "  sigma0:  " << fermiEnergy[SigmaZero] << '\n'
196             << "  sigma-:  " << fermiEnergy[Si    187             << "  sigma-:  " << fermiEnergy[SigmaMinus] << '\n'
197             );                                    188             );
198                                                   189 
199       INCL_DEBUG("Table of Fermi momenta [MeV/    190       INCL_DEBUG("Table of Fermi momenta [MeV/c] for A=" << theA << ", Z=" << theZ << ":" << '\n'
200             << "  proton:  " << fermiMomentum[    191             << "  proton:  " << fermiMomentum[Proton] << '\n'
201             << "  neutron: " << fermiMomentum[    192             << "  neutron: " << fermiMomentum[Neutron] << '\n'
202             );                                    193             );
203     }                                             194     }
204                                                   195 
205     G4double NuclearPotentialIsospin::computeP    196     G4double NuclearPotentialIsospin::computePotentialEnergy(const Particle *particle) const {
206                                                   197 
207       switch( particle->getType() )               198       switch( particle->getType() )
208       {                                           199       {
209         case Proton:                              200         case Proton:
210           return vProton;                         201           return vProton;
211           break;                                  202           break;
212         case Neutron:                             203         case Neutron:
213           return vNeutron;                        204           return vNeutron;
214           break;                                  205           break;
215                                                   206 
216         case PiPlus:                              207         case PiPlus:
217         case PiZero:                              208         case PiZero:
218         case PiMinus:                             209         case PiMinus:
219           return computePionPotentialEnergy(pa    210           return computePionPotentialEnergy(particle);
220           break;                                  211           break;
221                                                   212         
222         case SigmaPlus:                           213         case SigmaPlus:
223           return vSigmaPlus;                      214           return vSigmaPlus;
224           break;                                  215           break;
225         case SigmaZero:                           216         case SigmaZero:
226           return vSigmaZero;                      217           return vSigmaZero;
227           break;                                  218           break;
228         case Lambda:                              219         case Lambda:
229           return vLambda;                         220           return vLambda;
230           break;                                  221           break;
231         case SigmaMinus:                          222         case SigmaMinus:
232           return vSigmaMinus;                     223           return vSigmaMinus;
233           break;                                  224           break;
234                                                   225 
235         case Eta:                                 226         case Eta:
236         case Omega:                               227         case Omega:
237         case EtaPrime:                         << 228     case EtaPrime:
238           return computePionResonancePotential    229           return computePionResonancePotentialEnergy(particle);
239           break;                                  230           break;
240                                                   231 
241         case KPlus:                               232         case KPlus:
242         case KZero:                               233         case KZero:
243         case KZeroBar:                            234         case KZeroBar:
244         case KMinus:                              235         case KMinus:
245         case KShort:                              236         case KShort:
246         case KLong:                               237         case KLong:
247           return computeKaonPotentialEnergy(pa    238           return computeKaonPotentialEnergy(particle);
248           break;                                  239           break;
249                                                   240 
250         case Photon:                              241         case Photon:
251           return 0.0;                          << 
252           break;                               << 
253                                                << 
254         case antiProton:                       << 
255           return vantiProton;                  << 
256           break;                               << 
257         case antiNeutron:                      << 
258           return vantiProton;                  << 
259           break;                               << 
260         case antiLambda:                       << 
261           return 0.0;                          << 
262           break;                               << 
263         case antiSigmaMinus:                   << 
264           return 0.0;                          << 
265           break;                               << 
266         case antiSigmaPlus:                    << 
267           return 0.0;                          << 
268           break;                               << 
269         case antiSigmaZero:                    << 
270           return 0.0;                          << 
271           break;                               << 
272         case antiXiMinus:                      << 
273           return 0.0;                          << 
274           break;                               << 
275         case antiXiZero:                       << 
276           return 0.0;                          << 
277           break;                               << 
278         case XiMinus:                          << 
279           return 0.0;                          << 
280           break;                               << 
281         case XiZero:                           << 
282           return 0.0;                             242           return 0.0;
283           break;                                  243           break;
284                                                   244 
285         case DeltaPlusPlus:                       245         case DeltaPlusPlus:
286           return vDeltaPlusPlus;                  246           return vDeltaPlusPlus;
287           break;                                  247           break;
288         case DeltaPlus:                           248         case DeltaPlus:
289           return vDeltaPlus;                      249           return vDeltaPlus;
290           break;                                  250           break;
291         case DeltaZero:                           251         case DeltaZero:
292           return vDeltaZero;                      252           return vDeltaZero;
293           break;                                  253           break;
294         case DeltaMinus:                          254         case DeltaMinus:
295           return vDeltaMinus;                     255           return vDeltaMinus;
296           break;                                  256           break;
297       case Composite:                             257       case Composite:
298   INCL_ERROR("No potential computed for partic    258   INCL_ERROR("No potential computed for particle of type Cluster.");
299   return 0.0;                                     259   return 0.0;
300   break;                                          260   break;
301       case UnknownParticle:                       261       case UnknownParticle:
302   INCL_ERROR("Trying to compute potential ener    262   INCL_ERROR("Trying to compute potential energy for an unknown particle.");
303   return 0.0;                                     263   return 0.0;
304   break;                                          264   break;
305       }                                           265       }
306                                                   266 
307       INCL_ERROR("There is no potential for th    267       INCL_ERROR("There is no potential for this type of particle.");
308       return 0.0;                                 268       return 0.0;
309     }                                             269     }
310                                                   270 
311   }                                               271   }
312 }                                                 272 }
313                                                   273 
314                                                   274