Geant4 9.6.0
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 "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)