G4ResonanceNames.cc

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 #include "globals.hh"
00027 #include "G4ResonanceNames.hh"
00028 #include "G4VCrossSectionSource.hh"
00029 #include "G4KineticTrack.hh"
00030 #include "G4CrossSectionVector.hh"
00031 #include "G4ParticleDefinition.hh"
00032 #include "G4ShortLivedConstructor.hh"
00033 #include "G4ShortLivedTable.hh"
00034 #include "G4ParticleTable.hh"
00035 #include "G4PionPlus.hh"
00036 
00037 G4ResonanceNames::G4ResonanceNames()
00038 {
00039   // Excited N resonances
00040 
00041  nameNstar.push_back("N(1440)+");
00042  nameNstar.push_back("N(1440)0");
00043  nameNstar.push_back("N(1520)+");
00044  nameNstar.push_back("N(1520)0");
00045  nameNstar.push_back("N(1535)+");
00046  nameNstar.push_back("N(1535)0");
00047  nameNstar.push_back("N(1650)+");
00048  nameNstar.push_back("N(1650)0");
00049  nameNstar.push_back("N(1675)+");
00050  nameNstar.push_back("N(1675)0");
00051  nameNstar.push_back("N(1680)+");
00052  nameNstar.push_back("N(1680)0");
00053  nameNstar.push_back("N(1700)+");
00054  nameNstar.push_back("N(1700)0");
00055  nameNstar.push_back("N(1710)+");
00056  nameNstar.push_back("N(1710)0");
00057  nameNstar.push_back("N(1720)+");
00058  nameNstar.push_back("N(1720)0");
00059  nameNstar.push_back("N(1900)+");
00060  nameNstar.push_back("N(1900)0");
00061  nameNstar.push_back("N(1990)+");
00062  nameNstar.push_back("N(1990)0");
00063  nameNstar.push_back("N(2090)+");
00064  nameNstar.push_back("N(2090)0");
00065  nameNstar.push_back("N(2190)+");
00066  nameNstar.push_back("N(2190)0");
00067  nameNstar.push_back("N(2220)+");
00068  nameNstar.push_back("N(2220)0");
00069  nameNstar.push_back("N(2250)+");
00070  nameNstar.push_back("N(2250)0");
00071 
00072 
00073   // Delta
00074 
00075   G4String d1232Minus("delta-");
00076   G4String d1232Zero("delta0");
00077   G4String d1232Plus("delta+");
00078   G4String d1232PlusPlus("delta++");
00079   nameDelta.push_back(d1232Minus);
00080   nameDelta.push_back(d1232Zero);
00081   nameDelta.push_back(d1232Plus);
00082   nameDelta.push_back(d1232PlusPlus);
00083 
00084 
00085   // Excited Delta resonances
00086 
00087   nameDeltastar.push_back("delta(1600)+");
00088   nameDeltastar.push_back("delta(1600)++");
00089   nameDeltastar.push_back("delta(1600)-");
00090   nameDeltastar.push_back("delta(1600)0");
00091   nameDeltastar.push_back("delta(1620)+");
00092   nameDeltastar.push_back("delta(1620)++");
00093   nameDeltastar.push_back("delta(1620)-");
00094   nameDeltastar.push_back("delta(1620)0");
00095   nameDeltastar.push_back("delta(1700)+");
00096   nameDeltastar.push_back("delta(1700)++");
00097   nameDeltastar.push_back("delta(1700)-");
00098   nameDeltastar.push_back("delta(1700)0");
00099   nameDeltastar.push_back("delta(1900)+");
00100   nameDeltastar.push_back("delta(1900)++");
00101   nameDeltastar.push_back("delta(1900)-");
00102   nameDeltastar.push_back("delta(1900)0");
00103   nameDeltastar.push_back("delta(1905)+");
00104   nameDeltastar.push_back("delta(1905)++");
00105   nameDeltastar.push_back("delta(1905)-");
00106   nameDeltastar.push_back("delta(1905)0");
00107   nameDeltastar.push_back("delta(1910)+");
00108   nameDeltastar.push_back("delta(1910)++");
00109   nameDeltastar.push_back("delta(1910)-");
00110   nameDeltastar.push_back("delta(1910)0");
00111   nameDeltastar.push_back("delta(1920)+");
00112   nameDeltastar.push_back("delta(1920)++");
00113   nameDeltastar.push_back("delta(1920)-");
00114   nameDeltastar.push_back("delta(1920)0");
00115   nameDeltastar.push_back("delta(1930)+");
00116   nameDeltastar.push_back("delta(1930)++");
00117   nameDeltastar.push_back("delta(1930)-");
00118   nameDeltastar.push_back("delta(1930)0");
00119   nameDeltastar.push_back("delta(1950)+");
00120   nameDeltastar.push_back("delta(1950)++");
00121   nameDeltastar.push_back("delta(1950)-");
00122   nameDeltastar.push_back("delta(1950)0");
00123   
00124 
00125   // Lambda 
00126 
00127   nameLambda.push_back("lambda");
00128   nameLambda.push_back("lambda(1405)");
00129   nameLambda.push_back("lambda(1520)");
00130   nameLambda.push_back("lambda(1600)");
00131   nameLambda.push_back("lambda(1670)");
00132   nameLambda.push_back("lambda(1690)");
00133   nameLambda.push_back("lambda(1800)");
00134   nameLambda.push_back("lambda(1810)");
00135   nameLambda.push_back("lambda(1820)");
00136   nameLambda.push_back("lambda(1830)");
00137   nameLambda.push_back("lambda(1890)");
00138   nameLambda.push_back("lambda(2100)");
00139   nameLambda.push_back("lambda(2110)");
00140 
00141 
00142   // Sigma 
00143 
00144   nameSigma.push_back("sigma(1385)+");
00145   nameSigma.push_back("sigma(1385)-");
00146   nameSigma.push_back("sigma(1385)0");
00147   nameSigma.push_back("sigma(1660)+");
00148   nameSigma.push_back("sigma(1660)-");
00149   nameSigma.push_back("sigma(1660)0");
00150   nameSigma.push_back("sigma(1670)+");
00151   nameSigma.push_back("sigma(1670)-");
00152   nameSigma.push_back("sigma(1670)0");
00153   nameSigma.push_back("sigma(1750)+");
00154   nameSigma.push_back("sigma(1750)-");
00155   nameSigma.push_back("sigma(1750)0");
00156   nameSigma.push_back("sigma(1775)+");
00157   nameSigma.push_back("sigma(1775)-");
00158   nameSigma.push_back("sigma(1775)0");
00159   nameSigma.push_back("sigma(1915)+");
00160   nameSigma.push_back("sigma(1915)-");
00161   nameSigma.push_back("sigma(1915)0");
00162   nameSigma.push_back("sigma(1940)+");
00163   nameSigma.push_back("sigma(1940)-");
00164   nameSigma.push_back("sigma(1940)0");
00165   nameSigma.push_back("sigma(2030)+");
00166   nameSigma.push_back("sigma(2030)-");
00167   nameSigma.push_back("sigma(2030)0");
00168   
00169 
00170   // Xi
00171 
00172   nameXi.push_back("xi(1530)-");
00173   nameXi.push_back("xi(1530)0");
00174   nameXi.push_back("xi(1690)-");
00175   nameXi.push_back("xi(1690)0");
00176   nameXi.push_back("xi(1820)-");
00177   nameXi.push_back("xi(1820)0");
00178   nameXi.push_back("xi(1950)-");
00179   nameXi.push_back("xi(1950)0");
00180   nameXi.push_back("xi(2030)-");
00181   nameXi.push_back("xi(2030)0");
00182 
00183 
00184   G4ShortLivedConstructor ShortLived;
00185   ShortLived.ConstructParticle();
00186   G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
00187 
00188   size_t i;
00189 
00190   // Fill a map with the lowest resonance for each category
00191   for (i=0; i<nameNstar.size(); i++)
00192     {
00193       lowResMap[nameNstar[i]] = particleTable->FindParticle("N(1440)0");
00194     }
00195 
00196   for (i=0; i<nameDeltastar.size(); i++)
00197     {
00198       lowResMap[nameDeltastar[i]] = particleTable->FindParticle("delta0");
00199     }
00200 
00201   for (i=0; i<nameDelta.size(); i++)
00202     {
00203       lowResMap[nameDelta[i]] = particleTable->FindParticle("delta0");
00204     }
00205 
00206   for (i=0; i<nameLambda.size(); i++)
00207     {
00208       lowResMap[nameLambda[i]] = particleTable->FindParticle("lambda");
00209     }
00210 
00211   for (i=0; i<nameSigma.size(); i++)
00212     {
00213       lowResMap[nameSigma[i]] = particleTable->FindParticle("sigma0");
00214     }
00215 
00216   shortMap["N(1440)0"] = "N(1440)";
00217   shortMap["N(1440)+"] = "N(1440)";
00218 
00219   shortMap["N(1520)0"] = "N(1520)";;
00220   shortMap["N(1520)+"] = "N(1520)";
00221 
00222   shortMap["N(1535)0"] = "N(1535)";
00223   shortMap["N(1535)+"] = "N(1535)";
00224 
00225   shortMap["N(1650)0"] = "N(1650)";
00226   shortMap["N(1650)+"] = "N(1650)";
00227 
00228   shortMap["N(1675)0"] = "N(1675)";
00229   shortMap["N(1675)+"] = "N(1675)";
00230 
00231   shortMap["N(1680)0"] = "N(1680)";
00232   shortMap["N(1680)+"] = "N(1680)";
00233 
00234   shortMap["N(1700)0"] = "N(1700)";
00235   shortMap["N(1700)+"] = "N(1700)";
00236 
00237   shortMap["N(1710)0"] = "N(1710)";
00238   shortMap["N(1710)+"] = "N(1710)";
00239 
00240   shortMap["N(1720)0"] = "N(1720)";
00241   shortMap["N(1720)+"] = "N(1720)";
00242 
00243   shortMap["N(1900)0"] = "N(1900)";
00244   shortMap["N(1900)+"] = "N(1900)";
00245 
00246   shortMap["N(1990)0"] = "N(1990)";
00247   shortMap["N(1990)+"] = "N(1990)";
00248 
00249   shortMap["N(2090)0"] = "N(2090)";
00250   shortMap["N(2090)+"] = "N(2090)";
00251 
00252   shortMap["N(2190)0"] = "N(2190)";
00253   shortMap["N(2190)+"] = "N(2190)";
00254 
00255   shortMap["N(2220)0"] = "N(2220)";
00256   shortMap["N(2220)+"] = "N(2220)";
00257 
00258   shortMap["N(2250)0"] = "N(2250)";
00259   shortMap["N(2250)+"] = "N(2250)";
00260 
00261  
00262  // Excited Delta
00263 
00264   shortMap["delta(1600)-"] = "delta(1600)";
00265   shortMap["delta(1600)0"] = "delta(1600)";
00266   shortMap["delta(1600)+"] = "delta(1600)";
00267   shortMap["delta(1600)++"] = "delta(1600)";
00268 
00269   shortMap["delta(1620)-"] = "delta(1620)";
00270   shortMap["delta(1620)0"] = "delta(1620)";
00271   shortMap["delta(1620)+"] = "delta(1620)";
00272   shortMap["delta(1620)++"] = "delta(1620)";
00273 
00274   shortMap["delta(1700)-"] = "delta(1700)";
00275   shortMap["delta(1700)0"] = "delta(1700)";
00276   shortMap["delta(1700)+"] = "delta(1700)";
00277   shortMap["delta(1700)++"] = "delta(1700)";
00278 
00279   shortMap["delta(1900)-"] = "delta(1900)";
00280   shortMap["delta(1900)0"] = "delta(1900)";
00281   shortMap["delta(1900)+"] = "delta(1900)";
00282   shortMap["delta(1900)++"] = "delta(1900)";
00283 
00284   shortMap["delta(1905)-"] = "delta(1905)";
00285   shortMap["delta(1905)0"] = "delta(1905)";
00286   shortMap["delta(1905)+"] = "delta(1905)";
00287   shortMap["delta(1905)++"] = "delta(1905)";
00288 
00289   shortMap["delta(1910)-"] = "delta(1910)";
00290   shortMap["delta(1910)0"] = "delta(1910)";
00291   shortMap["delta(1910)+"] = "delta(1910)";
00292   shortMap["delta(1910)++"] = "delta(1910)";
00293 
00294   shortMap["delta(1920)-"] = "delta(1920)";
00295   shortMap["delta(1920)0"] = "delta(1920)";
00296   shortMap["delta(1920)+"] = "delta(1920)";
00297   shortMap["delta(1920)++"] = "delta(1920)";
00298 
00299   shortMap["delta(1930)-"] = "delta(1930)";
00300   shortMap["delta(1930)0"] = "delta(1930)";
00301   shortMap["delta(1930)+"] = "delta(1930)";
00302   shortMap["delta(1930)++"] = "delta(1930)";
00303 
00304   shortMap["delta(1950)-"] = "delta(1950)";
00305   shortMap["delta(1950)0"] = "delta(1950)";
00306   shortMap["delta(1950)+"] = "delta(1950)";
00307   shortMap["delta(1950)++"] = "delta(1950)";
00308 
00309   // Delta
00310 
00311   shortMap["delta-"] = "delta";
00312   shortMap["delta0"] = "delta";
00313   shortMap["delta+"] = "delta";
00314   shortMap["delta++"] = "delta";
00315 
00316 }
00317 
00318 
00319 G4ResonanceNames::~G4ResonanceNames()
00320 { }
00321 
00322 
00323 G4bool G4ResonanceNames::operator==(const G4ResonanceNames &right) const
00324 {
00325   return(this == (G4ResonanceNames*) &right);
00326 }
00327 
00328 
00329 G4bool G4ResonanceNames::operator!=(const G4ResonanceNames &right) const
00330 {
00331   return (this != (G4ResonanceNames*) &right);
00332 }
00333 
00334 
00335 G4double G4ResonanceNames::MinMass(const G4String& name) 
00336 {
00337   // Cut, from UrQMD (reference still to be detailed)
00338   const G4double coeff = 0.001;
00339 
00340   G4double lowMass = 0.;
00341   
00342   G4ParticleDefinition* def = 0;
00343 
00344   if (lowResMap.find(name) != lowResMap.end())
00345     {
00346       def = lowResMap[name];
00347     }
00348   else
00349     {
00350       G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
00351       def = particleTable->FindParticle(name);
00352     }
00353   if (def != 0)
00354     {
00355       G4ParticleDefinition* pion = G4PionPlus::PionPlusDefinition();
00356       lowMass = (1. + coeff) * def->GetPDGMass() + pion->GetPDGMass();
00357     }
00358   else
00359     { 
00360       G4cout << "G4ResonanceNames::MinMass - " << name << " not found" << G4endl;
00361       throw G4HadronicException(__FILE__, __LINE__,  "G4ResonanceNames::MinMass - resonance name not found");
00362     }
00363   return lowMass;
00364 }
00365 
00366 
00367 const G4String G4ResonanceNames::ShortName(const G4String& name) 
00368 {
00369   G4String shortName = "";
00370   if (shortMap.find(name) != shortMap.end())
00371     {
00372       shortName = shortMap[name];
00373     }
00374   return shortName;
00375 }

Generated on Mon May 27 17:49:43 2013 for Geant4 by  doxygen 1.4.7