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