Ignore:
Timestamp:
Dec 22, 2010, 3:52:27 PM (14 years ago)
Author:
garnier
Message:

geant4 tag 9.4

Location:
trunk/source/processes/hadronic/cross_sections
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/cross_sections/History

    r1340 r1347  
    1515     ---------------------------------------------------------------
    1616
    17 24 October 2010 Vladimir Ivanchenko (hadr-cross-V09-03-12)
     17 9 December 2010 Dennis Wright (hadr-cross-V09-03-21)
     18-----------------------------------------------------
     19- G4ElectroNuclearCrossSection::GetEquivalentPhotonEnergy() : remove
     20  initialization of array Y[]. This forced expensive re-calculation
     21  at each call.
     22 
     2326 November 2010 Vladimir Ivanchenko (hadr-cross-V09-03-20)
     24----------------------------------------------------------
     25- G4BGGPionElasticXS, G4BGGNucleonElasticXS,G4BGGNucleonInelasticXS
     26        fixed low-energy (E < 20 MeV) models
     27- G4TripathiLightCrossSection - J.M.Quesada fix for threshold shape
     28
     2923 November 2010 Vladimir Ivanchenko (hadr-cross-V09-03-19)
     30----------------------------------------------------------
     31- added G4CrossSectionInelastic and G4CrossSectionElastic - wrappers
     32        for components
     33
     3419 November 2010 Gunter Folger       (hadr-cross-V09-03-18)
     35- replace leftover calls to GetIsoZACrossSection by  GetZandACrossSection, and
     36   IsZAApplicable by IsIsoApplicable.
     37
     3818 November 2010 Vladimir Ivanchenko (hadr-cross-V09-03-17)
     39----------------------------------------------------------
     40- G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS - do
     41  not use G4Element, only G4NistManager
     42- G4ComponentAntiNuclNuclearXS - new class (A.Galoyan)
     43
     4413 November 2010 Gunter Folger (hadr-cross-V09-03-16)
     45------------------------------------------------------
     46- Fix bug from Integer A&Z transition:
     47  - G4VCrossSectionDataSet.cc:
     48  make new methods (IsIsoApplicable, GetZandACrossSection) forward to old
     49  methods (IsZAApplicable, GetIsoZACrossSection); old methods print a obsolete
     50   warning once.
     51  - G4CrossSectionDataStore.cc: use new methods only.
     52
     5312 November 2010  Gunter Folger (hadr-cross-V09-03-15)
     54------------------------------------------------------
     55- Add new class G4CrossSectionPairGG to extend a given cross-section with
     56   a scaled G4GlauberGribovCrossSection. Scaling result in smooth transition.
     57
     5811 November 2010  Dennis Wright (hadr-cross-V09-03-14)
     59------------------------------------------------------
     60Back out memory leak fixes of G4NeutronElasticXS.cc and G4NeutronInelasticXS.cc
     61Not a memory leak after all.
     62
     6310 November 2010  Dennis Wright (hadr-cross-V09-03-13)
     64------------------------------------------------------
     65NOTE: this tag deals exclusively with fixes of CoVerity-identified
     66bugs
     67
     68- G4HadronCrossSections.hh : fix uninitialized variable prevElement in ctor
     69
     70- Initialize arrays theGlauberFac and theCoulombFac in ctors of
     71  G4BGGNucleonElasticXS.cc, G4BGGNucleonInelasticXS.cc, G4BGGPionElasticXS.cc,
     72  G4BGGPionInelasticXS.cc
     73
     74- Initialize all elements of array Y[nE] to 0.0 in
     75  G4ElectroNuclearCrossSection::GetEquivalentPhotonEnergy()
     76
     77- Initialize fTotalXsc, fElasticXsc, fInelasticXsc, fProductionXsc,
     78  fDiffractionXsc, fHadronNucleonXsc to 0.0 in ctors of
     79  G4GlauberGribovCrossSection.cc, G4GGNuclNuclCrossSection.cc
     80
     81- Initialize fTotalXsc, fElasticXsc, fInelasticXsc, fHadronNucleonXsc to 0.0
     82  in ctor of G4HadronNucleonXsc, 
     83
     84- fix memory leak in G4NeutronElasticXS:Initialise and
     85  G4NeutronInelasticXS:Initialise :
     86   const G4Element* Elem =
     87     G4Element* G4NistManager::FindOrBuildElement(G4int Z, G4bool isotopes)
     88  Elem goes out of scope, so delete it
     89
     90- Initialize fTotalXsc, fElasticXsc to 0.0 in ctors of
     91  G4NucleonNuclearCrossSection.cc, G4PiNuclearCrossSection.cc
     92
     93- Initialize array theFac in ctors of
     94  G4UElasticCrossSection.cc, G4UInelasticCrossSection.cc
     95
     96
     9709 November 2010 Vladimir Ivanchenko (hadr-cross-V09-03-12)
     98-----------------------------------------------------------
    1899- G4VComponentCrossSection - use G4ParticleDefinition and kinetic
    19100   energy instead of G4DynamicParticle
     101- G4EMDissociationCrossSection - is now applicable for Hydrogen but
     102   cross section for Hydrogen is zero
     103
    20104
    2110520 October 2010 Gunter Folger (hadr-cross-V09-03-11)
     106----------------------------------------------------
    22107- add missing inline for GetCrossSection in G4BGGPionElasticXS.hh
     108
    23109
    2411015 October 2010 Dennis Wright (hadr-cross-V09-03-10)
  • trunk/source/processes/hadronic/cross_sections/src/G4EMDissociationCrossSection.cc

    r1340 r1347  
    5656// Beta release
    5757//
    58 // 30. May 2005, J.P. Wellisch removed a compilation warning on gcc 3.4 for
     58// 30 May 2005, J.P. Wellisch removed a compilation warning on gcc 3.4 for
    5959//               geant4 7.1.
     60// 09 November 2010, V.Ivanchenko make class applicable for Hydrogen but
     61//                   set cross section for Hydrogen to zero 
    6062//
    6163// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    9799G4bool
    98100G4EMDissociationCrossSection::IsIsoApplicable(const G4DynamicParticle* theDynamicParticle,
    99                                               G4int /*ZZ*/, G4int AA)
     101                                              G4int /*ZZ*/, G4int/* AA*/)
    100102{
    101103//
     
    107109//
    108110  if (G4ParticleTable::GetParticleTable()->GetIonTable()->
    109     IsIon(theDynamicParticle->GetDefinition()) && AA > 1)
     111      IsIon(theDynamicParticle->GetDefinition()) /*&& AA > 1*/)
    110112    return true;
    111113  else
     
    127129  G4int nIso = theElement->GetNumberOfIsotopes();
    128130  G4double crossSection = 0;
     131
     132  // VI protection for Hydrogen
     133  if(theElement->GetZ() < 1.5) { return crossSection; }
    129134     
    130135  if (nIso) {
     
    156161                                                   G4int ZZ, G4int AA, G4double /*temperature*/)
    157162{
     163  // VI protection for Hydrogen
     164  if(ZZ <= 1) { return 0.0; }
     165
    158166//
    159167// Get relevant information about the projectile and target (A, Z) and
  • trunk/source/processes/hadronic/cross_sections/src/G4GGNuclNuclCrossSection.cc

    r1340 r1347  
    2424// ********************************************************************
    2525//
    26 //
    2726// 24.11.08 V. Grichine - first implementation
    2827//
     
    3635
    3736
    38 ///////////////////////////////////////////////////////////////////////////////
    39 //
    40 //
    41 
    4237G4GGNuclNuclCrossSection::G4GGNuclNuclCrossSection()
    4338: fUpperLimit( 100000 * GeV ),
    4439  fLowerLimit( 0.1 * MeV ),
    45   fRadiusConst( 1.08*fermi )  // 1.1, 1.3 ?
     40  fRadiusConst( 1.08*fermi ),  // 1.1, 1.3 ?
     41  fTotalXsc(0.0), fElasticXsc(0.0), fInelasticXsc(0.0), fProductionXsc(0.0),
     42  fDiffractionXsc(0.0), fHadronNucleonXsc(0.0)
    4643{
    4744  theProton   = G4Proton::Proton();
     
    4946}
    5047
    51 ///////////////////////////////////////////////////////////////////////////////
    52 //
    53 //
    5448
    5549G4GGNuclNuclCrossSection::~G4GGNuclNuclCrossSection()
    5650{}
    57 
    58 ///////////////////////////////////////////////////////////////////////////////
    59 //
    60 //
    6151
    6252
  • trunk/source/processes/hadronic/cross_sections/src/G4GlauberGribovCrossSection.cc

    r1340 r1347  
    3737#include "G4ParticleDefinition.hh"
    3838
    39 //////////////////////////////////////////////////////////////////////////////////////
    40 //
     39///////////////////////////////////////////////////////////////////////////////
    4140//
    4241
     
    218217
    219218
    220 
    221 
    222 ////////////////////////////////////////////////////////////////////////////////
    223 //
     219//////////////////////////////////////////////////////////////////////////////
    224220//
    225221
     
    227223: fUpperLimit( 100000 * GeV ),
    228224  fLowerLimit( 3 * GeV ),
    229   fRadiusConst( 1.08*fermi )  // 1.1, 1.3 ?
     225  fRadiusConst( 1.08*fermi ),  // 1.1, 1.3 ?
     226  fTotalXsc(0.0), fElasticXsc(0.0), fInelasticXsc(0.0), fProductionXsc(0.0),
     227  fDiffractionXsc(0.0), fHadronNucleonXsc(0.0)
    230228{
    231229  theGamma    = G4Gamma::Gamma();
  • trunk/source/processes/hadronic/cross_sections/src/G4HadronNucleonXsc.cc

    r1340 r1347  
    2424// ********************************************************************
    2525//
    26 //
    2726// 14.03.07 V. Grichine - first implementation
    2827//
     
    3837G4HadronNucleonXsc::G4HadronNucleonXsc()
    3938: fUpperLimit( 10000 * GeV ),
    40   fLowerLimit( 0.03 * MeV )
     39  fLowerLimit( 0.03 * MeV ),
     40  fTotalXsc(0.0), fElasticXsc(0.0), fInelasticXsc(0.0), fHadronNucleonXsc(0.0)
    4141{
    4242  theGamma    = G4Gamma::Gamma();
     
    7272}
    7373
    74 ///////////////////////////////////////////////////////////////////////////////////////
    75 //
    76 //
    7774
    7875G4HadronNucleonXsc::~G4HadronNucleonXsc()
    7976{}
    80 
    81 
    82 ////////////////////////////////////////////////////////////////////////////////////////
    83 //
    84 //
    8577
    8678
  • trunk/source/processes/hadronic/cross_sections/src/G4IonsKoxCrossSection.cc

    r1340 r1347  
    107107    G4int ZZ = G4lrint(anElement->GetZ());
    108108    G4int AA = G4lrint(anElement->GetN());
    109     xsection = GetIsoZACrossSection(aParticle, ZZ, AA, temperature);
     109    xsection = GetZandACrossSection(aParticle, ZZ, AA, temperature);
    110110  }
    111111   
  • trunk/source/processes/hadronic/cross_sections/src/G4IonsShenCrossSection.cc

    r1340 r1347  
    109109      ZZ = (*isoVector)[i]->GetZ();
    110110      AA = (*isoVector)[i]->GetN();
    111       sig = GetIsoZACrossSection(aParticle, ZZ, AA, temperature);
     111      sig = GetZandACrossSection(aParticle, ZZ, AA, temperature);
    112112      xsection += sig*abundVector[i];
    113113    }
     
    116116    G4int ZZ = G4lrint(anElement->GetZ());
    117117    G4int AA = G4lrint(anElement->GetN());
    118     xsection = GetIsoZACrossSection(aParticle, ZZ, AA, temperature);
     118    xsection = GetZandACrossSection(aParticle, ZZ, AA, temperature);
    119119  }
    120120 
  • trunk/source/processes/hadronic/cross_sections/src/G4IonsSihverCrossSection.cc

    r1340 r1347  
    7373      ZZ = (*isoVector)[i]->GetZ();
    7474      AA = (*isoVector)[i]->GetN();
    75       sig = GetIsoZACrossSection(aParticle, ZZ, AA, temperature);
     75      sig = GetZandACrossSection(aParticle, ZZ, AA, temperature);
    7676      xsection += sig*abundVector[i];
    7777    }
     
    8080    G4int ZZ = G4lrint(anElement->GetZ());
    8181    G4int AA = G4lrint(anElement->GetN());
    82     xsection = GetIsoZACrossSection(aParticle, ZZ, AA, temperature);
     82    xsection = GetZandACrossSection(aParticle, ZZ, AA, temperature);
    8383  }
    8484   
  • trunk/source/processes/hadronic/cross_sections/src/G4NucleonNuclearCrossSection.cc

    r1340 r1347  
    449449
    450450///////////////////////////////////////////////////////////////////////////////
    451 //
    452 //
    453451
    454452G4NucleonNuclearCrossSection::G4NucleonNuclearCrossSection()
     453 :fTotalXsc(0.0), fElasticXsc(0.0)
    455454{
    456455  theNeutron = G4Neutron::Neutron();
  • trunk/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc

    r1340 r1347  
    301301  1970, 1980, 1950, 1978, 1830, 1780};
    302302
    303  G4PiNuclearCrossSection::
    304  G4PiNuclearCrossSection()
     303
     304G4PiNuclearCrossSection::G4PiNuclearCrossSection()
     305  : fTotalXsc(0.0), fElasticXsc(0.0)
    305306 {
    306307   thePimData.push_back(new G4PiData(he_t,   he_in,  e1, 38));
  • trunk/source/processes/hadronic/cross_sections/src/G4TripathiCrossSection.cc

    r1340 r1347  
    169169    G4int ZZ = G4lrint(anEle->GetZ());
    170170    G4int AA = G4lrint(anEle->GetN());
    171     xsection = GetIsoZACrossSection(aPart, ZZ, AA, temperature);
     171    xsection = GetZandACrossSection(aPart, ZZ, AA, temperature);
    172172  }
    173173
  • trunk/source/processes/hadronic/cross_sections/src/G4TripathiLightCrossSection.cc

    r1340 r1347  
    5555// 15 March 2004, P R Truscott, QinetiQ Ltd, UK
    5656// Beta release
     57//
     58// J. M. Quesada 24 November 2010 bug fixed in X_m
     59//(according to eq. 14 in  R.K. Tripathi et al. Nucl. Instr. and Meth. in Phys. Res. B 155 (1999) 349-356)
    5760//
    5861// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    247250  }
    248251  G4double S_L = 1.2 + 1.6*(1.0-std::exp(-E/15.0));
    249   G4double X_m = 1.0 - X1*std::exp(-E/X1*S_L);
     252//JMQ 241110 bug fixed
     253//  G4double X_m = 1.0 - X1*std::exp(-E/X1*S_L);
     254  G4double X_m = 1.0 - X1*std::exp(-E/(X1*S_L));
    250255//
    251256//
     
    341346    G4int ZZ = G4lrint(theTarget->GetZ());
    342347    G4int AA = G4lrint(theTarget->GetN());
    343     xsection = GetIsoZACrossSection(theProjectile, ZZ, AA, theTemperature);
     348    xsection = GetZandACrossSection(theProjectile, ZZ, AA, theTemperature);
    344349  }
    345350   
  • trunk/source/processes/hadronic/cross_sections/src/G4UElasticCrossSection.cc

    r1340 r1347  
    3030// 06.03.07 V.Ivanchenko - add Initialise function
    3131//
    32 //
    33 
    3432
    3533#include "G4UElasticCrossSection.hh"
     
    4846#include "G4NistManager.hh"
    4947
    50 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    5148
    5249G4UElasticCrossSection::G4UElasticCrossSection(const G4ParticleDefinition*)
     
    5552  hasGlauber = false;
    5653  thEnergy   = 90.*GeV;
     54  for (G4int i = 0; i < 93; i++) theFac[i] = 0.0;
    5755  fGlauber   = new G4GlauberGribovCrossSection();
    5856  fGheisha   = G4HadronCrossSections::Instance();
     
    6159}
    6260
    63 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    6461
    6562G4UElasticCrossSection::~G4UElasticCrossSection()
     
    7572                                              const G4Element*  elm)
    7673{
    77   return IsZAApplicable(dp, elm->GetZ(), elm->GetN());
     74  return IsIsoApplicable(dp, G4lrint(elm->GetZ()), G4lrint(elm->GetN()));
    7875}
    7976
     
    186183  G4int A = G4lrint(nist->GetAtomicMassAmu(2));
    187184
    188   if(fGlauber->IsZAApplicable(&dp, 2.0, A)) {
     185  if(fGlauber->IsIsoApplicable(&dp, 2, A)) {
    189186    hasGlauber = true;
    190187
  • trunk/source/processes/hadronic/cross_sections/src/G4UInelasticCrossSection.cc

    r1340 r1347  
    3030// 06.03.07 V.Ivanchenko - add Initialise function
    3131//
    32 //
    3332
    3433
     
    4847#include "G4NistManager.hh"
    4948
    50 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    5149
    5250G4UInelasticCrossSection::G4UInelasticCrossSection(const G4ParticleDefinition*)
     
    5553  hasGlauber = false;
    5654  thEnergy   = 90.*GeV;
     55  for (G4int i = 0; i < 93; i++) theFac[i] = 0.0;
    5756  fGlauber   = new G4GlauberGribovCrossSection();
    5857  fGheisha   = G4HadronCrossSections::Instance();
     
    6160}
    6261
    63 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    6462
    6563G4UInelasticCrossSection::~G4UInelasticCrossSection()
     
    7573                                              const G4Element*  elm)
    7674{
    77   return IsZAApplicable(dp, elm->GetZ(), elm->GetN());
     75  return IsIsoApplicable(dp, G4lrint(elm->GetZ()), G4lrint(elm->GetN()));
    7876}
    7977
     
    102100  G4int Z = G4lrint(elm->GetZ());
    103101  G4int N = G4lrint(elm->GetN());
    104   return GetIsoZACrossSection(dp, Z, N, temp);
     102  return GetZandACrossSection(dp, Z, N, temp);
    105103}
    106104
     
    121119      cross = theFac[Z]*fGlauber->GetInelasticGlauberGribov(dp, Z, A);
    122120    } else {
    123       cross = fNucleon->GetIsoZACrossSection(dp, Z, A);
     121      cross = fNucleon->GetZandACrossSection(dp, Z, A);
    124122    }
    125123
     
    195193      // proton and neutron
    196194      if(fNucleon) {
    197         csdn = fNucleon->GetIsoZACrossSection(&dp, iz, A);
     195        csdn = fNucleon->GetZandACrossSection(&dp, iz, A);
    198196
    199197        // pions
Note: See TracChangeset for help on using the changeset viewer.