source: trunk/source/processes/hadronic/models/im_r_matrix/src/G4ResonanceNames.cc @ 1196

Last change on this file since 1196 was 819, checked in by garnier, 16 years ago

import all except CVS

File size: 11.5 KB
Line 
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"
32#include "G4ShortLivedConstructor.hh"
33#include "G4ShortLivedTable.hh"
34#include "G4ParticleTable.hh"
35#include "G4PionPlus.hh"
36
37G4ResonanceNames::G4ResonanceNames()
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();
186  G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
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
319G4ResonanceNames::~G4ResonanceNames()
320{ }
321
322
323G4bool G4ResonanceNames::operator==(const G4ResonanceNames &right) const
324{
325  return(this == (G4ResonanceNames*) &right);
326}
327
328
329G4bool G4ResonanceNames::operator!=(const G4ResonanceNames &right) const
330{
331  return (this != (G4ResonanceNames*) &right);
332}
333
334
335G4double G4ResonanceNames::MinMass(const G4String& name) 
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    {
350      G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
351      def = particleTable->FindParticle(name);
352    }
353  if (def != 0)
354    {
355      G4ParticleDefinition* pion = G4PionPlus::PionPlusDefinition();
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
367const G4String G4ResonanceNames::ShortName(const G4String& name) 
368{
369  G4String shortName = "";
370  if (shortMap.find(name) != shortMap.end())
371    {
372      shortName = shortMap[name];
373    }
374  return shortName;
375}
Note: See TracBrowser for help on using the repository browser.