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