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