ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ResonanceNames.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ResonanceNames.cc
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 "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 }