Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/im_r_matrix/src/G4ResonanceNames.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  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 "G4ParticleTable.hh"
 34 #include "G4PionPlus.hh"
 35 
 36 G4ResonanceNames::G4ResonanceNames()
 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   const G4String& d1232Minus("delta-");
 75   const G4String& d1232Zero("delta0");
 76   const G4String& d1232Plus("delta+");
 77   const 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();
185   G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
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 
318 G4ResonanceNames::~G4ResonanceNames()
319 { }
320 
321 
322 G4bool G4ResonanceNames::operator==(const G4ResonanceNames &right) const
323 {
324   return(this == (G4ResonanceNames*) &right);
325 }
326 
327 
328 G4bool G4ResonanceNames::operator!=(const G4ResonanceNames &right) const
329 {
330   return (this != (G4ResonanceNames*) &right);
331 }
332 
333 
334 G4double G4ResonanceNames::MinMass(const G4String& name) 
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     {
349       G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
350       def = particleTable->FindParticle(name);
351     }
352   if (def != 0)
353     {
354       G4ParticleDefinition* pion = G4PionPlus::PionPlusDefinition();
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 
366 const G4String G4ResonanceNames::ShortName(const G4String& name) 
367 {
368   G4String shortName = "";
369   if (shortMap.find(name) != shortMap.end())
370     {
371       shortName = shortMap[name];
372     }
373   return shortName;
374 }
375