Changeset 1347 for trunk/source/processes/hadronic/cross_sections
- Timestamp:
- Dec 22, 2010, 3:52:27 PM (14 years ago)
- Location:
- trunk/source/processes/hadronic/cross_sections
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/cross_sections/History
r1340 r1347 15 15 --------------------------------------------------------------- 16 16 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 23 26 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 29 23 November 2010 Vladimir Ivanchenko (hadr-cross-V09-03-19) 30 ---------------------------------------------------------- 31 - added G4CrossSectionInelastic and G4CrossSectionElastic - wrappers 32 for components 33 34 19 November 2010 Gunter Folger (hadr-cross-V09-03-18) 35 - replace leftover calls to GetIsoZACrossSection by GetZandACrossSection, and 36 IsZAApplicable by IsIsoApplicable. 37 38 18 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 44 13 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 53 12 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 58 11 November 2010 Dennis Wright (hadr-cross-V09-03-14) 59 ------------------------------------------------------ 60 Back out memory leak fixes of G4NeutronElasticXS.cc and G4NeutronInelasticXS.cc 61 Not a memory leak after all. 62 63 10 November 2010 Dennis Wright (hadr-cross-V09-03-13) 64 ------------------------------------------------------ 65 NOTE: this tag deals exclusively with fixes of CoVerity-identified 66 bugs 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 97 09 November 2010 Vladimir Ivanchenko (hadr-cross-V09-03-12) 98 ----------------------------------------------------------- 18 99 - G4VComponentCrossSection - use G4ParticleDefinition and kinetic 19 100 energy instead of G4DynamicParticle 101 - G4EMDissociationCrossSection - is now applicable for Hydrogen but 102 cross section for Hydrogen is zero 103 20 104 21 105 20 October 2010 Gunter Folger (hadr-cross-V09-03-11) 106 ---------------------------------------------------- 22 107 - add missing inline for GetCrossSection in G4BGGPionElasticXS.hh 108 23 109 24 110 15 October 2010 Dennis Wright (hadr-cross-V09-03-10) -
trunk/source/processes/hadronic/cross_sections/src/G4EMDissociationCrossSection.cc
r1340 r1347 56 56 // Beta release 57 57 // 58 // 30 .May 2005, J.P. Wellisch removed a compilation warning on gcc 3.4 for58 // 30 May 2005, J.P. Wellisch removed a compilation warning on gcc 3.4 for 59 59 // geant4 7.1. 60 // 09 November 2010, V.Ivanchenko make class applicable for Hydrogen but 61 // set cross section for Hydrogen to zero 60 62 // 61 63 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 97 99 G4bool 98 100 G4EMDissociationCrossSection::IsIsoApplicable(const G4DynamicParticle* theDynamicParticle, 99 G4int /*ZZ*/, G4int AA)101 G4int /*ZZ*/, G4int/* AA*/) 100 102 { 101 103 // … … 107 109 // 108 110 if (G4ParticleTable::GetParticleTable()->GetIonTable()-> 109 IsIon(theDynamicParticle->GetDefinition()) && AA > 1)111 IsIon(theDynamicParticle->GetDefinition()) /*&& AA > 1*/) 110 112 return true; 111 113 else … … 127 129 G4int nIso = theElement->GetNumberOfIsotopes(); 128 130 G4double crossSection = 0; 131 132 // VI protection for Hydrogen 133 if(theElement->GetZ() < 1.5) { return crossSection; } 129 134 130 135 if (nIso) { … … 156 161 G4int ZZ, G4int AA, G4double /*temperature*/) 157 162 { 163 // VI protection for Hydrogen 164 if(ZZ <= 1) { return 0.0; } 165 158 166 // 159 167 // Get relevant information about the projectile and target (A, Z) and -
trunk/source/processes/hadronic/cross_sections/src/G4GGNuclNuclCrossSection.cc
r1340 r1347 24 24 // ******************************************************************** 25 25 // 26 //27 26 // 24.11.08 V. Grichine - first implementation 28 27 // … … 36 35 37 36 38 ///////////////////////////////////////////////////////////////////////////////39 //40 //41 42 37 G4GGNuclNuclCrossSection::G4GGNuclNuclCrossSection() 43 38 : fUpperLimit( 100000 * GeV ), 44 39 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) 46 43 { 47 44 theProton = G4Proton::Proton(); … … 49 46 } 50 47 51 ///////////////////////////////////////////////////////////////////////////////52 //53 //54 48 55 49 G4GGNuclNuclCrossSection::~G4GGNuclNuclCrossSection() 56 50 {} 57 58 ///////////////////////////////////////////////////////////////////////////////59 //60 //61 51 62 52 -
trunk/source/processes/hadronic/cross_sections/src/G4GlauberGribovCrossSection.cc
r1340 r1347 37 37 #include "G4ParticleDefinition.hh" 38 38 39 ////////////////////////////////////////////////////////////////////////////////////// 40 // 39 /////////////////////////////////////////////////////////////////////////////// 41 40 // 42 41 … … 218 217 219 218 220 221 222 //////////////////////////////////////////////////////////////////////////////// 223 // 219 ////////////////////////////////////////////////////////////////////////////// 224 220 // 225 221 … … 227 223 : fUpperLimit( 100000 * GeV ), 228 224 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) 230 228 { 231 229 theGamma = G4Gamma::Gamma(); -
trunk/source/processes/hadronic/cross_sections/src/G4HadronNucleonXsc.cc
r1340 r1347 24 24 // ******************************************************************** 25 25 // 26 //27 26 // 14.03.07 V. Grichine - first implementation 28 27 // … … 38 37 G4HadronNucleonXsc::G4HadronNucleonXsc() 39 38 : 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) 41 41 { 42 42 theGamma = G4Gamma::Gamma(); … … 72 72 } 73 73 74 ///////////////////////////////////////////////////////////////////////////////////////75 //76 //77 74 78 75 G4HadronNucleonXsc::~G4HadronNucleonXsc() 79 76 {} 80 81 82 ////////////////////////////////////////////////////////////////////////////////////////83 //84 //85 77 86 78 -
trunk/source/processes/hadronic/cross_sections/src/G4IonsKoxCrossSection.cc
r1340 r1347 107 107 G4int ZZ = G4lrint(anElement->GetZ()); 108 108 G4int AA = G4lrint(anElement->GetN()); 109 xsection = Get IsoZACrossSection(aParticle, ZZ, AA, temperature);109 xsection = GetZandACrossSection(aParticle, ZZ, AA, temperature); 110 110 } 111 111 -
trunk/source/processes/hadronic/cross_sections/src/G4IonsShenCrossSection.cc
r1340 r1347 109 109 ZZ = (*isoVector)[i]->GetZ(); 110 110 AA = (*isoVector)[i]->GetN(); 111 sig = Get IsoZACrossSection(aParticle, ZZ, AA, temperature);111 sig = GetZandACrossSection(aParticle, ZZ, AA, temperature); 112 112 xsection += sig*abundVector[i]; 113 113 } … … 116 116 G4int ZZ = G4lrint(anElement->GetZ()); 117 117 G4int AA = G4lrint(anElement->GetN()); 118 xsection = Get IsoZACrossSection(aParticle, ZZ, AA, temperature);118 xsection = GetZandACrossSection(aParticle, ZZ, AA, temperature); 119 119 } 120 120 -
trunk/source/processes/hadronic/cross_sections/src/G4IonsSihverCrossSection.cc
r1340 r1347 73 73 ZZ = (*isoVector)[i]->GetZ(); 74 74 AA = (*isoVector)[i]->GetN(); 75 sig = Get IsoZACrossSection(aParticle, ZZ, AA, temperature);75 sig = GetZandACrossSection(aParticle, ZZ, AA, temperature); 76 76 xsection += sig*abundVector[i]; 77 77 } … … 80 80 G4int ZZ = G4lrint(anElement->GetZ()); 81 81 G4int AA = G4lrint(anElement->GetN()); 82 xsection = Get IsoZACrossSection(aParticle, ZZ, AA, temperature);82 xsection = GetZandACrossSection(aParticle, ZZ, AA, temperature); 83 83 } 84 84 -
trunk/source/processes/hadronic/cross_sections/src/G4NucleonNuclearCrossSection.cc
r1340 r1347 449 449 450 450 /////////////////////////////////////////////////////////////////////////////// 451 //452 //453 451 454 452 G4NucleonNuclearCrossSection::G4NucleonNuclearCrossSection() 453 :fTotalXsc(0.0), fElasticXsc(0.0) 455 454 { 456 455 theNeutron = G4Neutron::Neutron(); -
trunk/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc
r1340 r1347 301 301 1970, 1980, 1950, 1978, 1830, 1780}; 302 302 303 G4PiNuclearCrossSection:: 304 G4PiNuclearCrossSection() 303 304 G4PiNuclearCrossSection::G4PiNuclearCrossSection() 305 : fTotalXsc(0.0), fElasticXsc(0.0) 305 306 { 306 307 thePimData.push_back(new G4PiData(he_t, he_in, e1, 38)); -
trunk/source/processes/hadronic/cross_sections/src/G4TripathiCrossSection.cc
r1340 r1347 169 169 G4int ZZ = G4lrint(anEle->GetZ()); 170 170 G4int AA = G4lrint(anEle->GetN()); 171 xsection = Get IsoZACrossSection(aPart, ZZ, AA, temperature);171 xsection = GetZandACrossSection(aPart, ZZ, AA, temperature); 172 172 } 173 173 -
trunk/source/processes/hadronic/cross_sections/src/G4TripathiLightCrossSection.cc
r1340 r1347 55 55 // 15 March 2004, P R Truscott, QinetiQ Ltd, UK 56 56 // 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) 57 60 // 58 61 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 247 250 } 248 251 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)); 250 255 // 251 256 // … … 341 346 G4int ZZ = G4lrint(theTarget->GetZ()); 342 347 G4int AA = G4lrint(theTarget->GetN()); 343 xsection = Get IsoZACrossSection(theProjectile, ZZ, AA, theTemperature);348 xsection = GetZandACrossSection(theProjectile, ZZ, AA, theTemperature); 344 349 } 345 350 -
trunk/source/processes/hadronic/cross_sections/src/G4UElasticCrossSection.cc
r1340 r1347 30 30 // 06.03.07 V.Ivanchenko - add Initialise function 31 31 // 32 //33 34 32 35 33 #include "G4UElasticCrossSection.hh" … … 48 46 #include "G4NistManager.hh" 49 47 50 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......51 48 52 49 G4UElasticCrossSection::G4UElasticCrossSection(const G4ParticleDefinition*) … … 55 52 hasGlauber = false; 56 53 thEnergy = 90.*GeV; 54 for (G4int i = 0; i < 93; i++) theFac[i] = 0.0; 57 55 fGlauber = new G4GlauberGribovCrossSection(); 58 56 fGheisha = G4HadronCrossSections::Instance(); … … 61 59 } 62 60 63 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......64 61 65 62 G4UElasticCrossSection::~G4UElasticCrossSection() … … 75 72 const G4Element* elm) 76 73 { 77 return Is ZAApplicable(dp, elm->GetZ(), elm->GetN());74 return IsIsoApplicable(dp, G4lrint(elm->GetZ()), G4lrint(elm->GetN())); 78 75 } 79 76 … … 186 183 G4int A = G4lrint(nist->GetAtomicMassAmu(2)); 187 184 188 if(fGlauber->Is ZAApplicable(&dp, 2.0, A)) {185 if(fGlauber->IsIsoApplicable(&dp, 2, A)) { 189 186 hasGlauber = true; 190 187 -
trunk/source/processes/hadronic/cross_sections/src/G4UInelasticCrossSection.cc
r1340 r1347 30 30 // 06.03.07 V.Ivanchenko - add Initialise function 31 31 // 32 //33 32 34 33 … … 48 47 #include "G4NistManager.hh" 49 48 50 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......51 49 52 50 G4UInelasticCrossSection::G4UInelasticCrossSection(const G4ParticleDefinition*) … … 55 53 hasGlauber = false; 56 54 thEnergy = 90.*GeV; 55 for (G4int i = 0; i < 93; i++) theFac[i] = 0.0; 57 56 fGlauber = new G4GlauberGribovCrossSection(); 58 57 fGheisha = G4HadronCrossSections::Instance(); … … 61 60 } 62 61 63 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......64 62 65 63 G4UInelasticCrossSection::~G4UInelasticCrossSection() … … 75 73 const G4Element* elm) 76 74 { 77 return Is ZAApplicable(dp, elm->GetZ(), elm->GetN());75 return IsIsoApplicable(dp, G4lrint(elm->GetZ()), G4lrint(elm->GetN())); 78 76 } 79 77 … … 102 100 G4int Z = G4lrint(elm->GetZ()); 103 101 G4int N = G4lrint(elm->GetN()); 104 return Get IsoZACrossSection(dp, Z, N, temp);102 return GetZandACrossSection(dp, Z, N, temp); 105 103 } 106 104 … … 121 119 cross = theFac[Z]*fGlauber->GetInelasticGlauberGribov(dp, Z, A); 122 120 } else { 123 cross = fNucleon->Get IsoZACrossSection(dp, Z, A);121 cross = fNucleon->GetZandACrossSection(dp, Z, A); 124 122 } 125 123 … … 195 193 // proton and neutron 196 194 if(fNucleon) { 197 csdn = fNucleon->Get IsoZACrossSection(&dp, iz, A);195 csdn = fNucleon->GetZandACrossSection(&dp, iz, A); 198 196 199 197 // pions
Note: See TracChangeset
for help on using the changeset viewer.