Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // INCL++ intra-nuclear cascade model 27 // Alain Boudard, CEA-Saclay, France 28 // Joseph Cugnon, University of Liege, Belgium 29 // Jean-Christophe David, CEA-Saclay, France 30 // Pekka Kaitaniemi, CEA-Saclay, France, and H 31 // Sylvie Leray, CEA-Saclay, France 32 // Davide Mancusi, CEA-Saclay, France 33 // 34 #define INCLXX_IN_GEANT4_MODE 1 35 36 #include "globals.hh" 37 38 /** \file G4INCLNuclearPotentialConstant.cc 39 * \brief Isospin- and energy-independent nucl 40 * 41 * Provides a constant nuclear potential (V0). 42 * 43 * \date 17 January 2011 44 * \author Davide Mancusi 45 */ 46 47 #include "G4INCLNuclearPotentialConstant.hh" 48 #include "G4INCLParticleTable.hh" 49 50 namespace G4INCL { 51 52 namespace NuclearPotential { 53 54 // Constructors 55 NuclearPotentialConstant::NuclearPotential 56 : INuclearPotential(A, Z, aPionPotential 57 { 58 initialize(); 59 } 60 61 // Destructor 62 NuclearPotentialConstant::~NuclearPotentia 63 } 64 65 void NuclearPotentialConstant::initialize( 66 const G4double mp = ParticleTable::getIN 67 const G4double mn = ParticleTable::getIN 68 69 const G4double theFermiMomentum = Partic 70 71 fermiMomentum[Proton] = theFermiMomentum 72 const G4double theProtonFermiEnergy = st 73 fermiEnergy[Proton] = theProtonFermiEner 74 75 fermiMomentum[Neutron] = theFermiMomentu 76 const G4double theNeutronFermiEnergy = s 77 fermiEnergy[Neutron] = theNeutronFermiEn 78 79 fermiEnergy[DeltaPlusPlus] = fermiEnergy 80 fermiEnergy[DeltaPlus] = fermiEnergy.fin 81 fermiEnergy[DeltaZero] = fermiEnergy.fin 82 fermiEnergy[DeltaMinus] = fermiEnergy.fi 83 84 fermiEnergy[SigmaPlus] = fermiEnergy.fin 85 fermiEnergy[SigmaZero] = fermiEnergy.fin 86 fermiEnergy[SigmaMinus] = fermiEnergy.fi 87 88 fermiEnergy[Lambda] = fermiEnergy.find(N 89 90 91 const G4double theAverageSeparationEnerg 92 separationEnergy[Proton] = theAverageSep 93 separationEnergy[Neutron] = theAverageSe 94 95 // Use separation energies from the Part 96 vNucleon = 0.5*(theProtonFermiEnergy + t 97 vDelta = vNucleon; 98 vSigma = -16.; // Caution: repulsive pot 99 vLambda = 28.; 100 separationEnergy[DeltaPlusPlus] = vDelta 101 separationEnergy[DeltaPlus] = vDelta - f 102 separationEnergy[DeltaZero] = vDelta - f 103 separationEnergy[DeltaMinus] = vDelta - 104 105 separationEnergy[PiPlus] = 0.; 106 separationEnergy[PiZero] = 0.; 107 separationEnergy[PiMinus] = 0.; 108 109 separationEnergy[Eta] = 0.; 110 separationEnergy[Omega] = 0.; 111 separationEnergy[EtaPrime] = 0.; 112 separationEnergy[Photon] = 0.; 113 114 separationEnergy[Lambda] = 0.; 115 separationEnergy[SigmaPlus] = 0.; 116 separationEnergy[SigmaZero] = 0.; 117 separationEnergy[SigmaMinus] = 0.; 118 separationEnergy[KPlus] = 0.; 119 separationEnergy[KZero] = 0.; 120 separationEnergy[KZeroBar] = 0.; 121 separationEnergy[KMinus] = 0.; 122 separationEnergy[KShort] = 0.; 123 separationEnergy[KLong] = 0.; 124 125 INCL_DEBUG("Table of separation energies 126 << " proton: " << separationEner 127 << " neutron: " << separationEner 128 << " delta++: " << separationEner 129 << " delta+: " << separationEner 130 << " delta0: " << separationEner 131 << " delta-: " << separationEner 132 << " pi+: " << separationEner 133 << " pi0: " << separationEner 134 << " pi-: " << separationEnergy[PiM 135 << " eta: " << separationEnergy[Eta 136 << " omega: " << separationEnergy[Ome 137 << " etaprime:" << separationEnergy[Eta 138 << " photon: " << separationEnergy[Pho 139 << " lambda: " << separationEner 140 << " sigmaplus: " << separationE 141 << " sigmazero: " << separationE 142 << " sigmaminus: " << separation 143 << " kplus: " << separationEnerg 144 << " kzero: " << separationEnerg 145 << " kzerobar: " << separationEn 146 << " kminus: " << separationEner 147 << " kshort: " << separationEner 148 << " klong: " << separationEnerg 149 ); 150 151 INCL_DEBUG("Table of Fermi energies [MeV 152 << " proton: " << fermiEnergy[Pr 153 << " neutron: " << fermiEnergy[Ne 154 << " delta++: " << fermiEnergy[De 155 << " delta+: " << fermiEnergy[De 156 << " delta0: " << fermiEnergy[De 157 << " delta-: " << fermiEnergy[De 158 << " lambda: " << fermiEnergy[La 159 << " sigmaplus: " << fermiEnergy 160 << " sigmazero: " << fermiEnergy 161 << " sigmaminus: " << fermiEnerg 162 ); 163 164 INCL_DEBUG("Table of Fermi momenta [MeV/ 165 << " proton: " << fermiMomentum[ 166 << " neutron: " << fermiMomentum[ 167 ); 168 } 169 170 G4double NuclearPotentialConstant::compute 171 172 switch( particle->getType() ) 173 { 174 case Proton: 175 case Neutron: 176 return vNucleon; 177 break; 178 179 case PiPlus: 180 case PiZero: 181 case PiMinus: 182 return computePionPotentialEnergy(pa 183 break; 184 185 case Eta: 186 case Omega: 187 case EtaPrime: 188 return computePionResonancePotential 189 break; 190 191 case SigmaPlus: 192 case SigmaZero: 193 case SigmaMinus: 194 return vSigma; 195 break; 196 case Lambda: 197 return vLambda; 198 break; 199 200 case KPlus: 201 case KZero: 202 case KZeroBar: 203 case KMinus: 204 return computeKaonPotentialEnergy(pa 205 break; 206 207 case Photon: 208 return 0.0; 209 break; 210 211 case DeltaPlusPlus: 212 case DeltaPlus: 213 case DeltaZero: 214 case DeltaMinus: 215 return vDelta; 216 break; 217 case UnknownParticle: 218 INCL_ERROR("Trying to compute potent 219 return 0.0; 220 break; 221 default: 222 INCL_ERROR("Trying to compute potent 223 return 0.0; 224 break; 225 } 226 } 227 228 } 229 } 230 231