Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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
319{ }
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:57
G4GLOB_DLL std::ostream G4cout
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
static G4PionPlus * PionPlusDefinition()
Definition: G4PionPlus.cc:92
G4bool operator==(const G4ResonanceNames &right) const
G4double MinMass(const G4String &name)
G4bool operator!=(const G4ResonanceNames &right) const
const G4String ShortName(const G4String &name)