Changeset 1347 for trunk/source/processes/hadronic/cross_sections/src
- Timestamp:
- Dec 22, 2010, 3:52:27 PM (15 years ago)
- Location:
- trunk/source/processes/hadronic/cross_sections/src
- Files:
-
- 13 edited
-
G4EMDissociationCrossSection.cc (modified) (5 diffs)
-
G4GGNuclNuclCrossSection.cc (modified) (3 diffs)
-
G4GlauberGribovCrossSection.cc (modified) (3 diffs)
-
G4HadronNucleonXsc.cc (modified) (3 diffs)
-
G4IonsKoxCrossSection.cc (modified) (1 diff)
-
G4IonsShenCrossSection.cc (modified) (2 diffs)
-
G4IonsSihverCrossSection.cc (modified) (2 diffs)
-
G4NucleonNuclearCrossSection.cc (modified) (1 diff)
-
G4PiNuclearCrossSection.cc (modified) (1 diff)
-
G4TripathiCrossSection.cc (modified) (1 diff)
-
G4TripathiLightCrossSection.cc (modified) (3 diffs)
-
G4UElasticCrossSection.cc (modified) (6 diffs)
-
G4UInelasticCrossSection.cc (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
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.
