Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer << 3 // * DISCLAIMER * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th << 5 // * The following disclaimer summarizes all the specific disclaimers * 6 // * the Geant4 Collaboration. It is provided << 6 // * of contributors to this software. The specific disclaimers,which * 7 // * conditions of the Geant4 Software License << 7 // * govern, are listed with their locations in: * 8 // * LICENSE and available at http://cern.ch/ << 8 // * http://cern.ch/geant4/license * 9 // * include a list of copyright holders. << 10 // * 9 // * * 11 // * Neither the authors of this software syst 10 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 11 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 12 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 13 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file << 14 // * use. * 16 // * for the full disclaimer and the limitatio << 17 // * 15 // * * 18 // * This code implementation is the result << 16 // * This code implementation is the intellectual property of the * 19 // * technical work of the GEANT4 collaboratio << 17 // * GEANT4 collaboration. * 20 // * By using, copying, modifying or distri << 18 // * By copying, distributing or modifying the Program (or any work * 21 // * any work based on the software) you ag << 19 // * based on the Program) you indicate your acceptance of this * 22 // * use in resulting scientific publicati << 20 // * statement, and all its terms. * 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* 21 // ******************************************************************** 25 // 22 // 26 #include "globals.hh" 23 #include "globals.hh" 27 #include "G4ResonanceNames.hh" 24 #include "G4ResonanceNames.hh" 28 #include "G4VCrossSectionSource.hh" 25 #include "G4VCrossSectionSource.hh" 29 #include "G4KineticTrack.hh" 26 #include "G4KineticTrack.hh" 30 #include "G4CrossSectionVector.hh" 27 #include "G4CrossSectionVector.hh" 31 #include "G4ParticleDefinition.hh" 28 #include "G4ParticleDefinition.hh" 32 #include "G4ShortLivedConstructor.hh" 29 #include "G4ShortLivedConstructor.hh" >> 30 #include "G4ShortLivedTable.hh" 33 #include "G4ParticleTable.hh" 31 #include "G4ParticleTable.hh" 34 #include "G4PionPlus.hh" 32 #include "G4PionPlus.hh" 35 33 36 G4ResonanceNames::G4ResonanceNames() 34 G4ResonanceNames::G4ResonanceNames() 37 { 35 { 38 // Excited N resonances 36 // Excited N resonances 39 37 40 nameNstar.push_back("N(1440)+"); 38 nameNstar.push_back("N(1440)+"); 41 nameNstar.push_back("N(1440)0"); 39 nameNstar.push_back("N(1440)0"); 42 nameNstar.push_back("N(1520)+"); 40 nameNstar.push_back("N(1520)+"); 43 nameNstar.push_back("N(1520)0"); 41 nameNstar.push_back("N(1520)0"); 44 nameNstar.push_back("N(1535)+"); 42 nameNstar.push_back("N(1535)+"); 45 nameNstar.push_back("N(1535)0"); 43 nameNstar.push_back("N(1535)0"); 46 nameNstar.push_back("N(1650)+"); 44 nameNstar.push_back("N(1650)+"); 47 nameNstar.push_back("N(1650)0"); 45 nameNstar.push_back("N(1650)0"); 48 nameNstar.push_back("N(1675)+"); 46 nameNstar.push_back("N(1675)+"); 49 nameNstar.push_back("N(1675)0"); 47 nameNstar.push_back("N(1675)0"); 50 nameNstar.push_back("N(1680)+"); 48 nameNstar.push_back("N(1680)+"); 51 nameNstar.push_back("N(1680)0"); 49 nameNstar.push_back("N(1680)0"); 52 nameNstar.push_back("N(1700)+"); 50 nameNstar.push_back("N(1700)+"); 53 nameNstar.push_back("N(1700)0"); 51 nameNstar.push_back("N(1700)0"); 54 nameNstar.push_back("N(1710)+"); 52 nameNstar.push_back("N(1710)+"); 55 nameNstar.push_back("N(1710)0"); 53 nameNstar.push_back("N(1710)0"); 56 nameNstar.push_back("N(1720)+"); 54 nameNstar.push_back("N(1720)+"); 57 nameNstar.push_back("N(1720)0"); 55 nameNstar.push_back("N(1720)0"); 58 nameNstar.push_back("N(1900)+"); 56 nameNstar.push_back("N(1900)+"); 59 nameNstar.push_back("N(1900)0"); 57 nameNstar.push_back("N(1900)0"); 60 nameNstar.push_back("N(1990)+"); 58 nameNstar.push_back("N(1990)+"); 61 nameNstar.push_back("N(1990)0"); 59 nameNstar.push_back("N(1990)0"); 62 nameNstar.push_back("N(2090)+"); 60 nameNstar.push_back("N(2090)+"); 63 nameNstar.push_back("N(2090)0"); 61 nameNstar.push_back("N(2090)0"); 64 nameNstar.push_back("N(2190)+"); 62 nameNstar.push_back("N(2190)+"); 65 nameNstar.push_back("N(2190)0"); 63 nameNstar.push_back("N(2190)0"); 66 nameNstar.push_back("N(2220)+"); 64 nameNstar.push_back("N(2220)+"); 67 nameNstar.push_back("N(2220)0"); 65 nameNstar.push_back("N(2220)0"); 68 nameNstar.push_back("N(2250)+"); 66 nameNstar.push_back("N(2250)+"); 69 nameNstar.push_back("N(2250)0"); 67 nameNstar.push_back("N(2250)0"); 70 68 71 69 72 // Delta 70 // Delta 73 71 74 const G4String& d1232Minus("delta-"); << 72 G4String d1232Minus("delta-"); 75 const G4String& d1232Zero("delta0"); << 73 G4String d1232Zero("delta0"); 76 const G4String& d1232Plus("delta+"); << 74 G4String d1232Plus("delta+"); 77 const G4String& d1232PlusPlus("delta++"); << 75 G4String d1232PlusPlus("delta++"); 78 nameDelta.push_back(d1232Minus); 76 nameDelta.push_back(d1232Minus); 79 nameDelta.push_back(d1232Zero); 77 nameDelta.push_back(d1232Zero); 80 nameDelta.push_back(d1232Plus); 78 nameDelta.push_back(d1232Plus); 81 nameDelta.push_back(d1232PlusPlus); 79 nameDelta.push_back(d1232PlusPlus); 82 80 83 81 84 // Excited Delta resonances 82 // Excited Delta resonances 85 83 86 nameDeltastar.push_back("delta(1600)+"); 84 nameDeltastar.push_back("delta(1600)+"); 87 nameDeltastar.push_back("delta(1600)++"); 85 nameDeltastar.push_back("delta(1600)++"); 88 nameDeltastar.push_back("delta(1600)-"); 86 nameDeltastar.push_back("delta(1600)-"); 89 nameDeltastar.push_back("delta(1600)0"); 87 nameDeltastar.push_back("delta(1600)0"); 90 nameDeltastar.push_back("delta(1620)+"); 88 nameDeltastar.push_back("delta(1620)+"); 91 nameDeltastar.push_back("delta(1620)++"); 89 nameDeltastar.push_back("delta(1620)++"); 92 nameDeltastar.push_back("delta(1620)-"); 90 nameDeltastar.push_back("delta(1620)-"); 93 nameDeltastar.push_back("delta(1620)0"); 91 nameDeltastar.push_back("delta(1620)0"); 94 nameDeltastar.push_back("delta(1700)+"); 92 nameDeltastar.push_back("delta(1700)+"); 95 nameDeltastar.push_back("delta(1700)++"); 93 nameDeltastar.push_back("delta(1700)++"); 96 nameDeltastar.push_back("delta(1700)-"); 94 nameDeltastar.push_back("delta(1700)-"); 97 nameDeltastar.push_back("delta(1700)0"); 95 nameDeltastar.push_back("delta(1700)0"); 98 nameDeltastar.push_back("delta(1900)+"); 96 nameDeltastar.push_back("delta(1900)+"); 99 nameDeltastar.push_back("delta(1900)++"); 97 nameDeltastar.push_back("delta(1900)++"); 100 nameDeltastar.push_back("delta(1900)-"); 98 nameDeltastar.push_back("delta(1900)-"); 101 nameDeltastar.push_back("delta(1900)0"); 99 nameDeltastar.push_back("delta(1900)0"); 102 nameDeltastar.push_back("delta(1905)+"); 100 nameDeltastar.push_back("delta(1905)+"); 103 nameDeltastar.push_back("delta(1905)++"); 101 nameDeltastar.push_back("delta(1905)++"); 104 nameDeltastar.push_back("delta(1905)-"); 102 nameDeltastar.push_back("delta(1905)-"); 105 nameDeltastar.push_back("delta(1905)0"); 103 nameDeltastar.push_back("delta(1905)0"); 106 nameDeltastar.push_back("delta(1910)+"); 104 nameDeltastar.push_back("delta(1910)+"); 107 nameDeltastar.push_back("delta(1910)++"); 105 nameDeltastar.push_back("delta(1910)++"); 108 nameDeltastar.push_back("delta(1910)-"); 106 nameDeltastar.push_back("delta(1910)-"); 109 nameDeltastar.push_back("delta(1910)0"); 107 nameDeltastar.push_back("delta(1910)0"); 110 nameDeltastar.push_back("delta(1920)+"); 108 nameDeltastar.push_back("delta(1920)+"); 111 nameDeltastar.push_back("delta(1920)++"); 109 nameDeltastar.push_back("delta(1920)++"); 112 nameDeltastar.push_back("delta(1920)-"); 110 nameDeltastar.push_back("delta(1920)-"); 113 nameDeltastar.push_back("delta(1920)0"); 111 nameDeltastar.push_back("delta(1920)0"); 114 nameDeltastar.push_back("delta(1930)+"); 112 nameDeltastar.push_back("delta(1930)+"); 115 nameDeltastar.push_back("delta(1930)++"); 113 nameDeltastar.push_back("delta(1930)++"); 116 nameDeltastar.push_back("delta(1930)-"); 114 nameDeltastar.push_back("delta(1930)-"); 117 nameDeltastar.push_back("delta(1930)0"); 115 nameDeltastar.push_back("delta(1930)0"); 118 nameDeltastar.push_back("delta(1950)+"); 116 nameDeltastar.push_back("delta(1950)+"); 119 nameDeltastar.push_back("delta(1950)++"); 117 nameDeltastar.push_back("delta(1950)++"); 120 nameDeltastar.push_back("delta(1950)-"); 118 nameDeltastar.push_back("delta(1950)-"); 121 nameDeltastar.push_back("delta(1950)0"); 119 nameDeltastar.push_back("delta(1950)0"); 122 120 123 121 124 // Lambda 122 // Lambda 125 123 126 nameLambda.push_back("lambda"); 124 nameLambda.push_back("lambda"); 127 nameLambda.push_back("lambda(1405)"); 125 nameLambda.push_back("lambda(1405)"); 128 nameLambda.push_back("lambda(1520)"); 126 nameLambda.push_back("lambda(1520)"); 129 nameLambda.push_back("lambda(1600)"); 127 nameLambda.push_back("lambda(1600)"); 130 nameLambda.push_back("lambda(1670)"); 128 nameLambda.push_back("lambda(1670)"); 131 nameLambda.push_back("lambda(1690)"); 129 nameLambda.push_back("lambda(1690)"); 132 nameLambda.push_back("lambda(1800)"); 130 nameLambda.push_back("lambda(1800)"); 133 nameLambda.push_back("lambda(1810)"); 131 nameLambda.push_back("lambda(1810)"); 134 nameLambda.push_back("lambda(1820)"); 132 nameLambda.push_back("lambda(1820)"); 135 nameLambda.push_back("lambda(1830)"); 133 nameLambda.push_back("lambda(1830)"); 136 nameLambda.push_back("lambda(1890)"); 134 nameLambda.push_back("lambda(1890)"); 137 nameLambda.push_back("lambda(2100)"); 135 nameLambda.push_back("lambda(2100)"); 138 nameLambda.push_back("lambda(2110)"); 136 nameLambda.push_back("lambda(2110)"); 139 137 140 138 141 // Sigma 139 // Sigma 142 140 143 nameSigma.push_back("sigma(1385)+"); 141 nameSigma.push_back("sigma(1385)+"); 144 nameSigma.push_back("sigma(1385)-"); 142 nameSigma.push_back("sigma(1385)-"); 145 nameSigma.push_back("sigma(1385)0"); 143 nameSigma.push_back("sigma(1385)0"); 146 nameSigma.push_back("sigma(1660)+"); 144 nameSigma.push_back("sigma(1660)+"); 147 nameSigma.push_back("sigma(1660)-"); 145 nameSigma.push_back("sigma(1660)-"); 148 nameSigma.push_back("sigma(1660)0"); 146 nameSigma.push_back("sigma(1660)0"); 149 nameSigma.push_back("sigma(1670)+"); 147 nameSigma.push_back("sigma(1670)+"); 150 nameSigma.push_back("sigma(1670)-"); 148 nameSigma.push_back("sigma(1670)-"); 151 nameSigma.push_back("sigma(1670)0"); 149 nameSigma.push_back("sigma(1670)0"); 152 nameSigma.push_back("sigma(1750)+"); 150 nameSigma.push_back("sigma(1750)+"); 153 nameSigma.push_back("sigma(1750)-"); 151 nameSigma.push_back("sigma(1750)-"); 154 nameSigma.push_back("sigma(1750)0"); 152 nameSigma.push_back("sigma(1750)0"); 155 nameSigma.push_back("sigma(1775)+"); 153 nameSigma.push_back("sigma(1775)+"); 156 nameSigma.push_back("sigma(1775)-"); 154 nameSigma.push_back("sigma(1775)-"); 157 nameSigma.push_back("sigma(1775)0"); 155 nameSigma.push_back("sigma(1775)0"); 158 nameSigma.push_back("sigma(1915)+"); 156 nameSigma.push_back("sigma(1915)+"); 159 nameSigma.push_back("sigma(1915)-"); 157 nameSigma.push_back("sigma(1915)-"); 160 nameSigma.push_back("sigma(1915)0"); 158 nameSigma.push_back("sigma(1915)0"); 161 nameSigma.push_back("sigma(1940)+"); 159 nameSigma.push_back("sigma(1940)+"); 162 nameSigma.push_back("sigma(1940)-"); 160 nameSigma.push_back("sigma(1940)-"); 163 nameSigma.push_back("sigma(1940)0"); 161 nameSigma.push_back("sigma(1940)0"); 164 nameSigma.push_back("sigma(2030)+"); 162 nameSigma.push_back("sigma(2030)+"); 165 nameSigma.push_back("sigma(2030)-"); 163 nameSigma.push_back("sigma(2030)-"); 166 nameSigma.push_back("sigma(2030)0"); 164 nameSigma.push_back("sigma(2030)0"); 167 165 168 166 169 // Xi 167 // Xi 170 168 171 nameXi.push_back("xi(1530)-"); 169 nameXi.push_back("xi(1530)-"); 172 nameXi.push_back("xi(1530)0"); 170 nameXi.push_back("xi(1530)0"); 173 nameXi.push_back("xi(1690)-"); 171 nameXi.push_back("xi(1690)-"); 174 nameXi.push_back("xi(1690)0"); 172 nameXi.push_back("xi(1690)0"); 175 nameXi.push_back("xi(1820)-"); 173 nameXi.push_back("xi(1820)-"); 176 nameXi.push_back("xi(1820)0"); 174 nameXi.push_back("xi(1820)0"); 177 nameXi.push_back("xi(1950)-"); 175 nameXi.push_back("xi(1950)-"); 178 nameXi.push_back("xi(1950)0"); 176 nameXi.push_back("xi(1950)0"); 179 nameXi.push_back("xi(2030)-"); 177 nameXi.push_back("xi(2030)-"); 180 nameXi.push_back("xi(2030)0"); 178 nameXi.push_back("xi(2030)0"); 181 179 182 180 183 G4ShortLivedConstructor ShortLived; 181 G4ShortLivedConstructor ShortLived; 184 ShortLived.ConstructParticle(); 182 ShortLived.ConstructParticle(); 185 G4ParticleTable* particleTable = G4ParticleT 183 G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); 186 184 187 size_t i; 185 size_t i; 188 186 189 // Fill a map with the lowest resonance for 187 // Fill a map with the lowest resonance for each category 190 for (i=0; i<nameNstar.size(); i++) 188 for (i=0; i<nameNstar.size(); i++) 191 { 189 { 192 lowResMap[nameNstar[i]] = particleTable- 190 lowResMap[nameNstar[i]] = particleTable->FindParticle("N(1440)0"); 193 } 191 } 194 192 195 for (i=0; i<nameDeltastar.size(); i++) 193 for (i=0; i<nameDeltastar.size(); i++) 196 { 194 { 197 lowResMap[nameDeltastar[i]] = particleTa 195 lowResMap[nameDeltastar[i]] = particleTable->FindParticle("delta0"); 198 } 196 } 199 197 200 for (i=0; i<nameDelta.size(); i++) 198 for (i=0; i<nameDelta.size(); i++) 201 { 199 { 202 lowResMap[nameDelta[i]] = particleTable- 200 lowResMap[nameDelta[i]] = particleTable->FindParticle("delta0"); 203 } 201 } 204 202 205 for (i=0; i<nameLambda.size(); i++) 203 for (i=0; i<nameLambda.size(); i++) 206 { 204 { 207 lowResMap[nameLambda[i]] = particleTable 205 lowResMap[nameLambda[i]] = particleTable->FindParticle("lambda"); 208 } 206 } 209 207 210 for (i=0; i<nameSigma.size(); i++) 208 for (i=0; i<nameSigma.size(); i++) 211 { 209 { 212 lowResMap[nameSigma[i]] = particleTable- 210 lowResMap[nameSigma[i]] = particleTable->FindParticle("sigma0"); 213 } 211 } 214 212 215 shortMap["N(1440)0"] = "N(1440)"; 213 shortMap["N(1440)0"] = "N(1440)"; 216 shortMap["N(1440)+"] = "N(1440)"; 214 shortMap["N(1440)+"] = "N(1440)"; 217 215 218 shortMap["N(1520)0"] = "N(1520)";; 216 shortMap["N(1520)0"] = "N(1520)";; 219 shortMap["N(1520)+"] = "N(1520)"; 217 shortMap["N(1520)+"] = "N(1520)"; 220 218 221 shortMap["N(1535)0"] = "N(1535)"; 219 shortMap["N(1535)0"] = "N(1535)"; 222 shortMap["N(1535)+"] = "N(1535)"; 220 shortMap["N(1535)+"] = "N(1535)"; 223 221 224 shortMap["N(1650)0"] = "N(1650)"; 222 shortMap["N(1650)0"] = "N(1650)"; 225 shortMap["N(1650)+"] = "N(1650)"; 223 shortMap["N(1650)+"] = "N(1650)"; 226 224 227 shortMap["N(1675)0"] = "N(1675)"; 225 shortMap["N(1675)0"] = "N(1675)"; 228 shortMap["N(1675)+"] = "N(1675)"; 226 shortMap["N(1675)+"] = "N(1675)"; 229 227 230 shortMap["N(1680)0"] = "N(1680)"; 228 shortMap["N(1680)0"] = "N(1680)"; 231 shortMap["N(1680)+"] = "N(1680)"; 229 shortMap["N(1680)+"] = "N(1680)"; 232 230 233 shortMap["N(1700)0"] = "N(1700)"; 231 shortMap["N(1700)0"] = "N(1700)"; 234 shortMap["N(1700)+"] = "N(1700)"; 232 shortMap["N(1700)+"] = "N(1700)"; 235 233 236 shortMap["N(1710)0"] = "N(1710)"; 234 shortMap["N(1710)0"] = "N(1710)"; 237 shortMap["N(1710)+"] = "N(1710)"; 235 shortMap["N(1710)+"] = "N(1710)"; 238 236 239 shortMap["N(1720)0"] = "N(1720)"; 237 shortMap["N(1720)0"] = "N(1720)"; 240 shortMap["N(1720)+"] = "N(1720)"; 238 shortMap["N(1720)+"] = "N(1720)"; 241 239 242 shortMap["N(1900)0"] = "N(1900)"; 240 shortMap["N(1900)0"] = "N(1900)"; 243 shortMap["N(1900)+"] = "N(1900)"; 241 shortMap["N(1900)+"] = "N(1900)"; 244 242 245 shortMap["N(1990)0"] = "N(1990)"; 243 shortMap["N(1990)0"] = "N(1990)"; 246 shortMap["N(1990)+"] = "N(1990)"; 244 shortMap["N(1990)+"] = "N(1990)"; 247 245 248 shortMap["N(2090)0"] = "N(2090)"; 246 shortMap["N(2090)0"] = "N(2090)"; 249 shortMap["N(2090)+"] = "N(2090)"; 247 shortMap["N(2090)+"] = "N(2090)"; 250 248 251 shortMap["N(2190)0"] = "N(2190)"; 249 shortMap["N(2190)0"] = "N(2190)"; 252 shortMap["N(2190)+"] = "N(2190)"; 250 shortMap["N(2190)+"] = "N(2190)"; 253 251 254 shortMap["N(2220)0"] = "N(2220)"; 252 shortMap["N(2220)0"] = "N(2220)"; 255 shortMap["N(2220)+"] = "N(2220)"; 253 shortMap["N(2220)+"] = "N(2220)"; 256 254 257 shortMap["N(2250)0"] = "N(2250)"; 255 shortMap["N(2250)0"] = "N(2250)"; 258 shortMap["N(2250)+"] = "N(2250)"; 256 shortMap["N(2250)+"] = "N(2250)"; 259 257 260 258 261 // Excited Delta 259 // Excited Delta 262 260 263 shortMap["delta(1600)-"] = "delta(1600)"; 261 shortMap["delta(1600)-"] = "delta(1600)"; 264 shortMap["delta(1600)0"] = "delta(1600)"; 262 shortMap["delta(1600)0"] = "delta(1600)"; 265 shortMap["delta(1600)+"] = "delta(1600)"; 263 shortMap["delta(1600)+"] = "delta(1600)"; 266 shortMap["delta(1600)++"] = "delta(1600)"; 264 shortMap["delta(1600)++"] = "delta(1600)"; 267 265 268 shortMap["delta(1620)-"] = "delta(1620)"; 266 shortMap["delta(1620)-"] = "delta(1620)"; 269 shortMap["delta(1620)0"] = "delta(1620)"; 267 shortMap["delta(1620)0"] = "delta(1620)"; 270 shortMap["delta(1620)+"] = "delta(1620)"; 268 shortMap["delta(1620)+"] = "delta(1620)"; 271 shortMap["delta(1620)++"] = "delta(1620)"; 269 shortMap["delta(1620)++"] = "delta(1620)"; 272 270 273 shortMap["delta(1700)-"] = "delta(1700)"; 271 shortMap["delta(1700)-"] = "delta(1700)"; 274 shortMap["delta(1700)0"] = "delta(1700)"; 272 shortMap["delta(1700)0"] = "delta(1700)"; 275 shortMap["delta(1700)+"] = "delta(1700)"; 273 shortMap["delta(1700)+"] = "delta(1700)"; 276 shortMap["delta(1700)++"] = "delta(1700)"; 274 shortMap["delta(1700)++"] = "delta(1700)"; 277 275 278 shortMap["delta(1900)-"] = "delta(1900)"; 276 shortMap["delta(1900)-"] = "delta(1900)"; 279 shortMap["delta(1900)0"] = "delta(1900)"; 277 shortMap["delta(1900)0"] = "delta(1900)"; 280 shortMap["delta(1900)+"] = "delta(1900)"; 278 shortMap["delta(1900)+"] = "delta(1900)"; 281 shortMap["delta(1900)++"] = "delta(1900)"; 279 shortMap["delta(1900)++"] = "delta(1900)"; 282 280 283 shortMap["delta(1905)-"] = "delta(1905)"; 281 shortMap["delta(1905)-"] = "delta(1905)"; 284 shortMap["delta(1905)0"] = "delta(1905)"; 282 shortMap["delta(1905)0"] = "delta(1905)"; 285 shortMap["delta(1905)+"] = "delta(1905)"; 283 shortMap["delta(1905)+"] = "delta(1905)"; 286 shortMap["delta(1905)++"] = "delta(1905)"; 284 shortMap["delta(1905)++"] = "delta(1905)"; 287 285 288 shortMap["delta(1910)-"] = "delta(1910)"; 286 shortMap["delta(1910)-"] = "delta(1910)"; 289 shortMap["delta(1910)0"] = "delta(1910)"; 287 shortMap["delta(1910)0"] = "delta(1910)"; 290 shortMap["delta(1910)+"] = "delta(1910)"; 288 shortMap["delta(1910)+"] = "delta(1910)"; 291 shortMap["delta(1910)++"] = "delta(1910)"; 289 shortMap["delta(1910)++"] = "delta(1910)"; 292 290 293 shortMap["delta(1920)-"] = "delta(1920)"; 291 shortMap["delta(1920)-"] = "delta(1920)"; 294 shortMap["delta(1920)0"] = "delta(1920)"; 292 shortMap["delta(1920)0"] = "delta(1920)"; 295 shortMap["delta(1920)+"] = "delta(1920)"; 293 shortMap["delta(1920)+"] = "delta(1920)"; 296 shortMap["delta(1920)++"] = "delta(1920)"; 294 shortMap["delta(1920)++"] = "delta(1920)"; 297 295 298 shortMap["delta(1930)-"] = "delta(1930)"; 296 shortMap["delta(1930)-"] = "delta(1930)"; 299 shortMap["delta(1930)0"] = "delta(1930)"; 297 shortMap["delta(1930)0"] = "delta(1930)"; 300 shortMap["delta(1930)+"] = "delta(1930)"; 298 shortMap["delta(1930)+"] = "delta(1930)"; 301 shortMap["delta(1930)++"] = "delta(1930)"; 299 shortMap["delta(1930)++"] = "delta(1930)"; 302 300 303 shortMap["delta(1950)-"] = "delta(1950)"; 301 shortMap["delta(1950)-"] = "delta(1950)"; 304 shortMap["delta(1950)0"] = "delta(1950)"; 302 shortMap["delta(1950)0"] = "delta(1950)"; 305 shortMap["delta(1950)+"] = "delta(1950)"; 303 shortMap["delta(1950)+"] = "delta(1950)"; 306 shortMap["delta(1950)++"] = "delta(1950)"; 304 shortMap["delta(1950)++"] = "delta(1950)"; 307 305 308 // Delta 306 // Delta 309 307 310 shortMap["delta-"] = "delta"; 308 shortMap["delta-"] = "delta"; 311 shortMap["delta0"] = "delta"; 309 shortMap["delta0"] = "delta"; 312 shortMap["delta+"] = "delta"; 310 shortMap["delta+"] = "delta"; 313 shortMap["delta++"] = "delta"; 311 shortMap["delta++"] = "delta"; 314 312 315 } 313 } 316 314 317 315 318 G4ResonanceNames::~G4ResonanceNames() 316 G4ResonanceNames::~G4ResonanceNames() 319 { } 317 { } 320 318 321 319 322 G4bool G4ResonanceNames::operator==(const G4Re 320 G4bool G4ResonanceNames::operator==(const G4ResonanceNames &right) const 323 { 321 { 324 return(this == (G4ResonanceNames*) &right); 322 return(this == (G4ResonanceNames*) &right); 325 } 323 } 326 324 327 325 328 G4bool G4ResonanceNames::operator!=(const G4Re 326 G4bool G4ResonanceNames::operator!=(const G4ResonanceNames &right) const 329 { 327 { 330 return (this != (G4ResonanceNames*) &right); 328 return (this != (G4ResonanceNames*) &right); 331 } 329 } 332 330 333 331 334 G4double G4ResonanceNames::MinMass(const G4Str 332 G4double G4ResonanceNames::MinMass(const G4String& name) 335 { 333 { 336 // Cut, from UrQMD (reference still to be de 334 // Cut, from UrQMD (reference still to be detailed) 337 static const G4double coeff = 0.001; << 335 const G4double coeff = 0.001; 338 336 339 G4double lowMass = 0.; 337 G4double lowMass = 0.; 340 338 341 G4ParticleDefinition* def = 0; 339 G4ParticleDefinition* def = 0; 342 340 343 if (lowResMap.find(name) != lowResMap.end()) 341 if (lowResMap.find(name) != lowResMap.end()) 344 { 342 { 345 def = lowResMap[name]; 343 def = lowResMap[name]; 346 } 344 } 347 else 345 else 348 { 346 { 349 G4ParticleTable* particleTable = G4Parti 347 G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); 350 def = particleTable->FindParticle(name); 348 def = particleTable->FindParticle(name); 351 } 349 } 352 if (def != 0) 350 if (def != 0) 353 { 351 { 354 G4ParticleDefinition* pion = G4PionPlus: 352 G4ParticleDefinition* pion = G4PionPlus::PionPlusDefinition(); 355 lowMass = (1. + coeff) * def->GetPDGMass 353 lowMass = (1. + coeff) * def->GetPDGMass() + pion->GetPDGMass(); 356 } 354 } 357 else 355 else 358 { 356 { 359 G4cout << "G4ResonanceNames::MinMass - " 357 G4cout << "G4ResonanceNames::MinMass - " << name << " not found" << G4endl; 360 throw G4HadronicException(__FILE__, __LI 358 throw G4HadronicException(__FILE__, __LINE__, "G4ResonanceNames::MinMass - resonance name not found"); 361 } 359 } 362 return lowMass; 360 return lowMass; 363 } 361 } 364 362 365 363 366 const G4String G4ResonanceNames::ShortName(con 364 const G4String G4ResonanceNames::ShortName(const G4String& name) 367 { 365 { 368 G4String shortName = ""; 366 G4String shortName = ""; 369 if (shortMap.find(name) != shortMap.end()) 367 if (shortMap.find(name) != shortMap.end()) 370 { 368 { 371 shortName = shortMap[name]; 369 shortName = shortMap[name]; 372 } 370 } 373 return shortName; 371 return shortName; 374 } 372 } 375 373