G4QAOLowEnergyLoss.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 //
00027 // -------------------------------------------------------------
00028 //      GEANT 4 class implementation file 
00029 //
00030 //      History: New Implementation
00031 //    
00032 //      ---------- G4QAOLowEnergyLoss physics process -------
00033 //                  by Stephane Chauvie, 5 May 2000 
00034 // Modified:
00035 //
00036 // 24/05/2000 MGP  Modified to remove compilation warnings on Linux and DEC
00037 //                 Introduced sizes of L0, L1, L2 arrays
00038 // 23/05/2000 MGP  Made compliant to design
00039 // 02/08/2000 V.Ivanchenko Clean up according new design
00040 // 16/09/2000 S. Chauvie  Oscillator for all materials
00041 // 03/10/2000 V.Ivanchenko CodeWizard clean up
00042 // 05/11/2000 V.Ivanchenko "Aluminum" - correct name, end of cycle
00043 //            over shells, and two bugs from previous edition
00044 // 10/05/2001 V.Ivanchenko Clean up againist Linux compilation with -Wall
00045 // 13/05/2001 S. Chauvie corrected bugs
00046 // 01/06/2001 V.Ivanchenko replace names by Z, change the validity range
00047 //                         from 50 keV to 5 KeV and change sign of the
00048 //                         Barkas term
00049 // 4/06/2001 S. Chauvie  Corrected small bugs
00050 //
00051 // ************************************************************
00052 // It is the Quantal Harmonic Oscillator Model for energy loss
00053 // of slow antiproton 
00054 // ************************************************************
00055 // --------------------------------------------------------------
00056 
00057 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
00058 
00059 #include "G4QAOLowEnergyLoss.hh"
00060 #include "G4PhysicalConstants.hh"
00061 #include "G4SystemOfUnits.hh"
00062 #include "G4DynamicParticle.hh"
00063 #include "G4Material.hh"
00064 #include "G4ParticleDefinition.hh"
00065 #include "G4AntiProton.hh"
00066 
00067 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
00068 
00069 G4QAOLowEnergyLoss::G4QAOLowEnergyLoss(const G4String& name)
00070   : G4VLowEnergyModel(name)
00071 {
00072   numberOfMaterials = 6;
00073   sizeL0 = 67;
00074   sizeL1 = 22;
00075   sizeL2 = 14;
00076 }
00077 
00078 
00079 G4QAOLowEnergyLoss::~G4QAOLowEnergyLoss()
00080 {;}
00081 
00082 
00083 G4double G4QAOLowEnergyLoss::HighEnergyLimit(const G4ParticleDefinition* ,
00084                                              const G4Material* ) const
00085 {
00086   return 2.0*MeV ;
00087 }
00088 
00089 
00090 G4double G4QAOLowEnergyLoss::LowEnergyLimit(const G4ParticleDefinition* ,
00091                                             const G4Material* ) const
00092 {
00093   //  return 50.0*keV ;
00094   return 5.0*keV ;
00095 }
00096 
00097 
00098 G4double G4QAOLowEnergyLoss::HighEnergyLimit(const G4ParticleDefinition* ) const
00099 {
00100   return 2.0*MeV ;
00101 }
00102 
00103 G4double G4QAOLowEnergyLoss::LowEnergyLimit(const G4ParticleDefinition* ) const
00104 {
00105   //  return 50.0*keV ;
00106   return 5.0*keV ;
00107 }
00108 
00109 
00110 G4bool G4QAOLowEnergyLoss::IsInCharge(const G4DynamicParticle* particle,
00111                                       const G4Material* material) const
00112 {
00113   G4bool isInCharge = false;
00114 
00115   G4bool hasMaterial = false;
00116 
00117   if (material->GetNumberOfElements() == 1) hasMaterial = true;
00118   
00119   if ((particle->GetDefinition()) == (G4AntiProton::AntiProtonDefinition())
00120                && hasMaterial) isInCharge = true;
00121   
00122   return isInCharge;
00123 
00124 }
00125 
00126 G4bool G4QAOLowEnergyLoss::IsInCharge(const G4ParticleDefinition* aParticle,
00127                                       const G4Material* material) const
00128 {
00129   
00130   G4bool isInCharge = false;
00131   
00132   G4bool hasMaterial = false;
00133   
00134   if (material->GetNumberOfElements() == 1) hasMaterial = true;
00135   
00136 
00137   if (aParticle == (G4AntiProton::AntiProtonDefinition())
00138                 && hasMaterial) isInCharge = true;
00139   
00140   return isInCharge;
00141   
00142 }
00143 
00144 
00145 G4double G4QAOLowEnergyLoss::TheValue(const G4DynamicParticle* particle,
00146                                       const G4Material* material) 
00147 {
00148   G4double zParticle = (G4int)(particle->GetCharge())/eplus;
00149 
00150   G4double energy = particle->GetKineticEnergy() ;
00151   G4double eloss  = EnergyLoss(material,energy,zParticle) ;
00152 
00153   return eloss ;
00154 }
00155 
00156 
00157 G4double G4QAOLowEnergyLoss::TheValue(const G4ParticleDefinition* aParticle,
00158                                       const G4Material* material,
00159                                       G4double kineticEnergy) 
00160 {
00161   G4double zParticle = (aParticle->GetPDGCharge())/eplus;
00162 
00163   G4double eloss  = EnergyLoss(material,kineticEnergy,zParticle) ;
00164 
00165   return eloss ;
00166 }
00167 
00168 
00169 
00170 G4double G4QAOLowEnergyLoss::EnergyLoss(const G4Material* material,
00171                                         G4double kineticEnergy,
00172                                         G4double zParticle) const 
00173 {
00174   G4int nbOfShell = GetNumberOfShell(material);
00175   if(nbOfShell < 1) nbOfShell = 1;
00176   
00177   //G4int iz = (G4int)(material->GetZ());
00178   //if(iz < 1) iz = 1;
00179   //else if(iz > 100) iz = 100;
00180   //G4int nbOfShell = fNumberOfShells[iz];
00181   
00182   /*
00183   if(material->GetName()=="Graphite"){
00184   G4cout << " E(MeV)= " << kineticEnergy/MeV << " n= " 
00185          << nbOfShell 
00186          << " for " << material->GetZ() << G4endl; 
00187   }
00188   */
00189   G4double dedx=0;
00190 
00191   G4double v = c_light * std::sqrt( 2.0 * kineticEnergy / proton_mass_c2 );
00192   G4double coeff = twopi * proton_mass_c2 * 
00193                   (material-> GetTotNbOfElectPerVolume()) / 
00194                    electron_mass_c2 ;
00195   G4double fBetheVelocity = fine_structure_const * c_light / v;
00196   coeff *= fine_structure_const * fine_structure_const * hbarc_squared / 
00197            kineticEnergy ;
00198 
00199   //G4double beta = std::sqrt( 2.0 * kineticEnergy / proton_mass_c2 );
00200   //G4double fBetheVelocity = std::sqrt( 2.0 * 25.0 * keV / proton_mass_c2 )/beta;
00201   //G4double coeff= twopi_mc2_rcl2*(material->GetElectronDensity())/(beta*beta);
00202 
00203   
00204   G4double l0Term = 0, l1Term = 0, l2Term = 0;
00205   
00206   for (G4int nos = 0 ; nos < nbOfShell ; nos++){
00207     
00208     G4double l0 = 0, l1 = 0, l2 = 0;
00209     G4double NormalizedEnergy = ( 2.0 * electron_mass_c2 * v * v  ) / 
00210                           ( c_squared * GetShellEnergy(material,nos) );
00211     //G4double NormalizedEnergy = ( 2.0 * electron_mass_c2 * beta * beta  ) / 
00212     //                              GetShellEnergy(material,nos);
00213     G4double shStrength = GetShellStrength(material,nos);
00214 
00215     l0 = GetL0(NormalizedEnergy);
00216     l0Term += shStrength  * l0; 
00217     
00218     l1 = GetL1(NormalizedEnergy);
00219     l1Term += shStrength * l1; 
00220     
00221     l2 = GetL2(NormalizedEnergy);
00222     l2Term += shStrength * l2; 
00223 
00224     /*
00225     if(material->GetName()=="Graphite"){
00226     G4cout << nos << ". "
00227            << " E(MeV)= " << kineticEnergy/MeV 
00228            << " normE= "  << NormalizedEnergy
00229            << " sh en= "  << GetShellEnergy(material,nos)
00230            << " str= "  << shStrength
00231            << " v0/v= " << fBetheVelocity
00232            << " l0= " << l0Term
00233            << " l1= " << l1Term
00234            << " l2= " << l2Term
00235            << G4endl;
00236            }
00237      */   
00238   }
00239        
00240   dedx = coeff * zParticle * zParticle * (l0Term
00241        + zParticle * fBetheVelocity * l1Term 
00242        + zParticle * zParticle * fBetheVelocity * fBetheVelocity * l2Term);
00243 
00244   //  G4cout << " E(MeV)= " << kineticEnergy/MeV 
00245   //         << " dedx(Mev/mm)= " << dedx*mm/MeV << G4endl;
00246           
00247   return dedx ; 
00248                             
00249 }
00250 
00251 
00252 G4int G4QAOLowEnergyLoss::GetNumberOfShell(const G4Material* material) const
00253 {
00254   // Set return value from table
00255   G4int Z = (G4int)(material->GetZ());
00256   G4int nShell = 0;
00257 
00258   // Set return value if in material available from Aahrus
00259   for(G4int i=0; i<numberOfMaterials; i++) {
00260 
00261     if(materialAvailable[i] == Z){
00262         nShell = nbofShellForMaterial[i];
00263         break;
00264     }
00265     else nShell = fNumberOfShells[Z];
00266   }
00267   
00268    return nShell;
00269 }
00270 
00271 
00272 
00273 G4double G4QAOLowEnergyLoss::GetShellEnergy(const G4Material* material,
00274                                             G4int nbOfTheShell) const
00275 {
00276     // 
00277     G4double shellEnergy = alShellEnergy[0];
00278 
00279     if(material->GetZ() == 13) shellEnergy =  alShellEnergy[nbOfTheShell];
00280     else if(material->GetZ() == 14)shellEnergy = siShellEnergy[nbOfTheShell];
00281     else if(material->GetZ() == 29)shellEnergy = cuShellEnergy[nbOfTheShell]; 
00282     else if(material->GetZ() == 73)shellEnergy =  taShellEnergy[nbOfTheShell];
00283     else if(material->GetZ() == 79)shellEnergy =  auShellEnergy[nbOfTheShell];
00284     else if(material->GetZ() == 78)shellEnergy =  ptShellEnergy[nbOfTheShell];
00285     else if  (material->GetNumberOfElements() == 1)
00286       shellEnergy = GetOscillatorEnergy(material, nbOfTheShell);
00287     else G4cout << "WARNING - G4QAOLowEnergyLoss::GetShellEnergy - "
00288                 << "The model is not available for "
00289                 << material->GetName() 
00290                 << G4endl;
00291 
00292   return  shellEnergy;
00293 }
00294 
00295 
00296 G4double G4QAOLowEnergyLoss::GetOscillatorEnergy(const G4Material* material,
00297                                                  G4int nbOfTheShell) const
00298 { 
00299   
00300   const G4Element* element = material->GetElement(0);
00301   
00302   G4int Z = (G4int)(element->GetZ());
00303     
00304 G4double squaredPlasmonEnergy = 28.816 * 28.816  * 1e-6 
00305                                 * material->GetDensity()/g/cm3
00306                                 * (Z/element->GetN()) ;
00307 //G4double squaredPlasmonEnergy = 28.16 * 28.16 * 1e-6  
00308 //                                * (material->GetDensity()) * (cm3/g)
00309 //                              *  Z / (element->GetN()) ;
00310   
00311   G4double plasmonTerm = 0.66667 * GetOccupationNumber(Z,nbOfTheShell)  
00312                        * squaredPlasmonEnergy / (Z*Z) ; 
00313   
00314   G4double ionTerm = std::exp(0.5) * (element->GetAtomicShell(nbOfTheShell)) ;
00315 
00316   ionTerm = ionTerm*ionTerm ;
00317    
00318   G4double oscShellEnergy = std::sqrt( ionTerm + plasmonTerm );
00319  
00320 /*  if(material->GetName()=="Graphite"){
00321     G4cout << "\t" << Z 
00322            << "\t" << nbOfTheShell
00323            << "\t" << squaredPlasmonEnergy
00324            << "\t" << plasmonTerm
00325            << "\t" << ionTerm
00326            << "\t" << GetOccupationNumber(Z,nbOfTheShell)
00327            << "\t" << element->GetAtomicShell(nbOfTheShell)
00328            << "\t" << oscShellEnergy << G4endl;}
00329 */
00330   return  oscShellEnergy;
00331 }
00332 
00333 
00334 G4double G4QAOLowEnergyLoss::GetShellStrength(const G4Material* material,
00335                                               G4int nbOfTheShell) const
00336 {
00337   G4double shellStrength = alShellStrength[0];
00338   
00339   if(material->GetZ() == 13) shellStrength = alShellStrength[nbOfTheShell];
00340   else if(material->GetZ() == 14)shellStrength =siShellStrength[nbOfTheShell];
00341   else if(material->GetZ() == 29)shellStrength =cuShellStrength[nbOfTheShell];
00342   else if(material->GetZ() == 73)shellStrength =taShellStrength[nbOfTheShell];
00343   else if(material->GetZ() == 79)shellStrength =auShellStrength[nbOfTheShell];
00344   else if(material->GetZ() == 78)shellStrength =ptShellStrength[nbOfTheShell];
00345   else if  (material->GetNumberOfElements() == 1){
00346     G4int Z = (G4int)(material->GetZ());
00347     shellStrength = GetOccupationNumber(Z,nbOfTheShell) / Z ;}
00348   else G4cout << "WARNING - G4QAOLowEnergyLoss::GetShellEnergy - "
00349               << "The model is not available for "
00350               << material->GetName() 
00351               << G4endl;
00352 
00353   return shellStrength;
00354 }
00355 
00356 G4double G4QAOLowEnergyLoss::GetOccupationNumber(G4int Z, G4int ShellNb) const
00357 {
00358 
00359   G4int indice = ShellNb ;
00360   for (G4int z = 1 ; z < Z ; z++) {indice += fNumberOfShells[z];}
00361 
00362   return nbOfElectronPerSubShell[indice+1];
00363 }
00364 
00365 
00366 G4double G4QAOLowEnergyLoss::GetL0(G4double normEnergy) const 
00367 {
00368   G4int n;
00369   
00370   for(n = 0; n < sizeL0; n++) {
00371     if( normEnergy < L0[n][0] ) break;
00372   }
00373   if(0 == n) n = 1 ;
00374   if(n >= sizeL0) n = sizeL0 - 1 ;
00375 
00376   G4double l0    = L0[n][1];
00377   G4double l0p   = L0[n-1][1];
00378   G4double bethe = l0p + (l0 - l0p) * ( normEnergy - L0[n-1][0]) / 
00379                   (L0[n][0] - L0[n-1][0]);
00380   return bethe ;
00381   
00382 }
00383 
00384 G4double G4QAOLowEnergyLoss::GetL1(G4double normEnergy) const
00385 {
00386   G4int n;
00387 
00388   for(n = 0; n < sizeL1; n++) {
00389     if( normEnergy < L1[n][0] ) break;
00390   }
00391   if(0 == n) n = 1 ;
00392   if(n >= sizeL1) n = sizeL1 - 1 ;
00393 
00394   G4double l1    = L1[n][1];
00395   G4double l1p   = L1[n-1][1];
00396   G4double barkas= l1p + (l1 - l1p) * ( normEnergy - L1[n-1][0]) / 
00397                   (L1[n][0] - L1[n-1][0]);
00398   
00399   return barkas;
00400   
00401 }
00402 
00403 
00404 G4double G4QAOLowEnergyLoss::GetL2(G4double normEnergy) const
00405 {
00406   G4int n;
00407   for(n = 0; n < sizeL2; n++) {
00408     if( normEnergy < L2[n][0] ) break;
00409   }
00410   if(0 == n) n = 1 ;
00411   if(n >= sizeL2) n = sizeL2 - 1 ;
00412 
00413   G4double l2    = L2[n][1];
00414   G4double l2p   = L2[n-1][1];
00415   G4double bloch = l2p + (l2 - l2p) * ( normEnergy - L2[n-1][0]) / 
00416                   (L2[n][0] - L2[n-1][0]);
00417   
00418   return bloch;
00419 }
00420 
00421 
00422 const G4int G4QAOLowEnergyLoss::materialAvailable[6] = {13,14,29,73,79,78};
00423   /*
00424   "Aluminum",
00425   "Silicon",
00426   "Copper",
00427   "Tantalum",
00428   "Gold",
00429   "Platinum"};
00430   */
00431 const G4int G4QAOLowEnergyLoss::nbofShellForMaterial[6] = {3,3,4,6,6,6 };
00432               
00433 G4double G4QAOLowEnergyLoss::alShellEnergy[3]  ={ 2795e-6, 202e-6,  16.9e-6};
00434 G4double G4QAOLowEnergyLoss::alShellStrength[3]={ 0.1349, 0.6387, 0.2264};
00435 G4double G4QAOLowEnergyLoss::siShellEnergy[3]  ={ 3179e-6, 249e-6, 20.3e-6 };
00436 G4double G4QAOLowEnergyLoss::siShellStrength[3]={ 0.1222, 0.5972, 0.2806};
00437 G4double G4QAOLowEnergyLoss::cuShellEnergy[4]  ={ 16931e-6, 1930e-6, 199e-6, 39.6e-6};
00438 G4double G4QAOLowEnergyLoss::cuShellStrength[4]={ 0.0505, 0.2561, 0.4913, 0.2021};
00439 G4double G4QAOLowEnergyLoss::taShellEnergy[6]  ={ 88926e-6, 18012e-6, 3210e-6, 575e-6, 108.7e-6, 30.8e-6};
00440 G4double G4QAOLowEnergyLoss::taShellStrength[6]={ 0.0126, 0.0896, 0.2599, 0.3413, 0.2057, 0.0908};
00441 G4double G4QAOLowEnergyLoss::auShellEnergy[6]={ 96235e-6, 25918e-6, 4116e-6, 599e-6, 87.3e-6, 36.9e-6};
00442 G4double G4QAOLowEnergyLoss::auShellStrength[6]={ 0.0139, 0.0803, 0.2473, 0.423, 0.1124, 0.1231};
00443 G4double G4QAOLowEnergyLoss::ptShellEnergy[6]={ 95017e-6, 25590e-6, 4063e-6, 576e-6, 81.9e-6, 31.4e-6};
00444 G4double G4QAOLowEnergyLoss::ptShellStrength[6]={ 0.0129, 0.0745, 0.2295, 0.4627, 0.1324, 0.0879};
00445 
00446 
00447 const G4double G4QAOLowEnergyLoss::L0[67][2] =
00448 {
00449   {0.00,        0.000001},
00450   {0.10,        0.000001},
00451   {0.12,        0.00001},
00452   {0.14,        0.00005},
00453   {0.16,        0.00014},
00454   {0.18,        0.00030},
00455   {0.20,        0.00057},
00456   {0.25,        0.00189},
00457   {0.30,        0.00429},
00458   {0.35,        0.00784},
00459   {0.40,        0.01248},
00460   {0.45,        0.01811},
00461   {0.50,        0.02462},
00462   {0.60,        0.03980},
00463   {0.70,        0.05731},
00464   {0.80,        0.07662},
00465   {0.90,        0.09733},
00466   {1.00,        0.11916},
00467   {1.20,        0.16532},
00468   {1.40,        0.21376},
00469   {1.60,        0.26362},
00470   {1.80,        0.31428},
00471   {2.00,        0.36532},
00472   {2.50,        0.49272},
00473   {3.00,        0.61765},
00474   {3.50,        0.73863},
00475   {4.00,        0.85496},
00476   {4.50,        0.96634},
00477   {5.00,        1.07272},
00478   {6.00,        1.27086},
00479   {7.00,        1.45075},
00480   {8.00,        1.61412},
00481   {9.00,        1.76277},
00482   {10.00,       1.89836},
00483   {12.00,       2.13625},
00484   {14.00,       2.33787},
00485   {16.00,       2.51093},
00486   {18.00,       2.66134},
00487   {20.00,       2.79358},
00488   {25.00, 3.06539},
00489   {30.00, 3.27902},
00490   {35.00, 3.45430},
00491   {40.00, 3.60281},
00492   {45.00, 3.73167},
00493   {50.00, 3.84555},
00494   {60.00, 4.04011},
00495   {70.00, 4.20264},
00496   {80.00, 4.34229},
00497   {90.00,  4.46474},
00498   {100.00, 4.57378},
00499   {120.00, 4.76155},
00500   {140.00, 4.91953},
00501   {160.00, 5.05590},
00502   {180.00, 5.17588},
00503   {200.00, 5.28299},
00504   {250.00, 5.50925},
00505   {300.00, 5.69364},
00506   {350.00, 5.84926},
00507   {400.00, 5.98388},
00508   {450.00, 6.10252},
00509   {500.00, 6.20856},
00510   {600.00, 6.39189},
00511   {700.00, 6.54677},
00512   {800.00, 6.68084},
00513   {900.00, 6.79905},
00514   {1000.00, 6.90474}
00515 };
00516 
00517 
00518 const G4double G4QAOLowEnergyLoss::L1[22][2] =
00519 {
00520   {0.00,       -0.000001},
00521   {0.10,       -0.00001},
00522   {0.20,       -0.00049},
00523   {0.30,       -0.00084},
00524   {0.40,        0.00085},
00525   {0.50,        0.00519},
00526   {0.60,        0.01198},
00527   {0.70,        0.02074},
00528   {0.80,        0.03133},
00529   {0.90,        0.04369},
00530   {1.00,        0.06035},
00531   {2.00,        0.24023},
00532   {3.00,        0.44284},
00533   {4.00,        0.62012},
00534   {5.00,        0.77031},
00535   {6.00,        0.90390},
00536   {7.00,        1.02705},
00537   {8.00,        1.10867},
00538   {9.00,        1.17546},
00539   {10.00,       1.21599},
00540   {15.00,       1.24349},
00541   {20.00,       1.16752}
00542 };
00543 
00544 
00545 const G4double G4QAOLowEnergyLoss::L2[14][2] =
00546 {
00547   {0.00,        0.000001},
00548   {0.10,        0.00001},
00549   {0.20,        0.00000},
00550   {0.40,       -0.00120},
00551   {0.60,       -0.00036},
00552   {0.80,        0.00372},
00553   {1.00,        0.01298},
00554   {2.00,        0.08296},
00555   {4.00,        0.21953},
00556   {6.00,        0.23903},
00557   {8.00,        0.20893},
00558   {10.00,       0.10879},
00559   {20.00,      -0.88409},       
00560   {40.00,      -1.13902}
00561 };
00562 
00563 
00564 const G4int G4QAOLowEnergyLoss::nbOfElectronPerSubShell[1540] = 
00565 {
00566   0, // consistency with G4AtomicShells
00567   1,//------ H
00568   2,//------ He
00569   2,  1,//------ Li
00570   2,  2,//------ Be
00571   2,  2,  1,//------ B
00572   2,  2,  2,//------ C
00573   2,  2,  2,  1,//------ N
00574   2,  2,  2,  2,//------ O
00575   2,  2,  5,//------ F
00576   2,  2,  2,  4,//------ Ne
00577   2,  2,  2,  4,  1,//------ Na
00578   2,  2,  2,  4,  2,//------ Mg
00579   2,  2,  2,  4,  2,  1,//------ Al
00580   2,  2,  2,  4,  2,  2,//------ Si
00581   2,  2,  2,  4,  2,  3,//------ P
00582   2,  2,  2,  4,  2,  4,//------
00583   2,  2,  2,  4,  2,  5,//------
00584   2,  2,  2,  4,  2,  2,  4,//------
00585   2,  2,  2,  4,  2,  2,  4,  1,//------
00586   2,  2,  2,  4,  2,  2,  4,  2,//------
00587   2,  2,  2,  4,  2,  2,  4,  1,  2,//------
00588   2,  2,  2,  4,  2,  2,  4,  2,  2,//------
00589   2,  2,  2,  4,  2,  2,  4,  3,  2,//------
00590   2,  2,  2,  4,  2,  2,  4,  4,  2,//------
00591   2,  2,  2,  4,  2,  2,  4,  5,  2,//------
00592   2,  2,  2,  4,  2,  2,  4,  6,  2,//------
00593   2,  2,  2,  4,  2,  2,  4,  7,  2,//------
00594   2,  2,  2,  4,  2,  2,  4,  4,  4,  2,//------
00595   2,  2,  2,  4,  2,  2,  4,  4,  5,  2,//------
00596   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,//------
00597   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  1,//------
00598   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,//------
00599   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  3,//------
00600   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  4,//------
00601   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  5,//------
00602   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,//------
00603   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  1,//------
00604   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  2,//------
00605   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  1,  2,//------
00606   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  2,  2,//------
00607   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  3,  2,//------
00608   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  2,//------
00609   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  5,  2,//------
00610   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  6,  2,//------
00611   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  7,  2,//------
00612   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  4,  2,//------
00613   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  5,  2,//------
00614   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  2,//------
00615   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  2,  1,//------
00616   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  2,  2,//------
00617   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  2,  3,//------
00618   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  2,  4,//------
00619   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  2,  5,//------
00620   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  2,  2,  4,//------
00621   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  2,  2,  4,  1,//------
00622   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  2,  2,  4,  2,//------
00623   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  2,  2,  4,  1,  2,//------
00624   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  2,  2,  2,  4,  2,//------
00625   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  3,  2,  2,  4,  2,//------
00626   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  4,  2,  2,  4,  2,//------
00627   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  5,  2,  2,  4,  2,//------
00628   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  2,  2,  4,  2,//------
00629   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  7,  2,  2,  4,  2,//------
00630   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  7,  2,  2,  4,  1,  2,//------
00631   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  9,  2,  2,  4,  2,//------
00632   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6, 10,  2,  2,  4,  2,//------
00633   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6, 11,  2,  2,  4,  2,//------
00634   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6, 12,  2,  2,  4,  2,//------
00635   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6, 13,  2,  2,  4,  2,//------
00636   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  2,//------
00637   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  1,  2,//------
00638   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  2,  2,//------
00639   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  3,  2,//------
00640   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  2,//------
00641   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  5,  2,//------
00642   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  6,  2,//------
00643   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  7,  2,//------
00644   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  9,  1,//------
00645   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  1,//------
00646   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  2,//------
00647   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  2,  1,//------
00648   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  2,  2,//------
00649   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  2,  3,//------
00650   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  2,  4,//------
00651   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  2,  2,  3,//------
00652   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  2,  2,  4,//------
00653   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  2,  2,  4,  1,//------
00654   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  2,  2,  4,  2,//------
00655   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  2,  2,  4,  1,  2,//------
00656   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  2,  2,  4,  2,  2,//------
00657   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  2,  2,  2,  4,  1,  2,//------
00658   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  3,  2,  2,  4,  1,  2,//------
00659   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  4,  2,  2,  4,  1,  2,//------
00660   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  6,  2,  2,  4,  2,//------
00661   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  7,  2,  2,  4,  2,//------
00662   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  7,  2,  2,  4,  1,  2,//------
00663   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6,  8,  2,  2,  4,  1,  2,//------
00664   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6, 10,  2,  2,  4,  2,//------
00665   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6, 11,  2,  2,  4,  2,//------
00666   2,  2,  2,  4,  2,  2,  4,  4,  6,  2,  2,  4,  4,  6,  6,  8,  2,  2,  4,  4,  6, 12,  2,  2,  4,  2 //-----
00667 };
00668 
00669 const G4int G4QAOLowEnergyLoss::fNumberOfShells[101] =
00670 {
00671  0 ,  // nonexisting zero element
00672 
00673  1 ,  1 ,  2 ,  2 ,  3 ,    3 ,  4 ,  4 ,  3 ,  4 ,  //  1 - 10
00674 
00675  5 ,  5 ,  6 ,  6 ,  6 ,    6 ,  6 ,  7 ,  8 ,  8 ,  // 11 - 20
00676 
00677  9 ,  9 ,  9 ,  9 ,  9 ,    9 ,  9 , 10 , 10 , 10 ,  // 21 - 30
00678 
00679 11 , 11 , 11 , 11 , 11 ,   12 , 13 , 13 , 14 , 14 ,  // 31 - 40
00680 
00681 14 , 14 , 14 , 14 , 14 ,   15 , 15 , 15 , 16 , 16 ,  // 41 - 50
00682 
00683 // ----------------------------------------------------------
00684 
00685 16 , 16 , 16 , 17 , 18 ,   18 , 19 , 19 , 19 , 19 ,  // 51 - 60
00686 
00687 19 , 19 , 19 , 20 , 19 ,   19 , 19 , 19 , 19 , 20 ,  // 61 - 70
00688 
00689 21 , 21 , 21 , 21 , 21 ,   21 , 21 , 21 , 22 , 22 ,  // 71 - 80
00690 
00691 23 , 23 , 23 , 23 , 24 ,   24 , 25 , 25 , 26 , 26 ,  // 81 - 90
00692 
00693 27 , 27 , 27 , 26 , 26 ,   27 , 27 , 26 , 26 , 26    // 91 - 100
00694 
00695 };
00696 
00697 

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