Geant4  9.6.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups 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"
28 #include "G4VCrossSectionSource.hh"
29 #include "G4KineticTrack.hh"
30 #include "G4CrossSectionVector.hh"
31 #include "G4ParticleDefinition.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 }