Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 // Calculation of the total, elastic and inel 26 // Calculation of the total, elastic and inelastic cross-sections 27 // of hadron (proton, neutron, pi+, pi-, K+, 27 // of hadron (proton, neutron, pi+, pi-, K+, K-, anti_proton, anti_neutron 28 // interactions with nuclei based on CHIPS mo 28 // interactions with nuclei based on CHIPS model 29 // 29 // 30 // Created by V. Uzhinsky, 31.05.2011 30 // Created by V. Uzhinsky, 31.05.2011 31 // Copied to hadronic/cross_sections by W. Po 31 // Copied to hadronic/cross_sections by W. Pokorski 32 32 33 #include "G4ChipsComponentXS.hh" 33 #include "G4ChipsComponentXS.hh" 34 34 35 #include "G4SystemOfUnits.hh" 35 #include "G4SystemOfUnits.hh" 36 #include "G4ParticleTable.hh" 36 #include "G4ParticleTable.hh" 37 #include "G4IonTable.hh" 37 #include "G4IonTable.hh" 38 #include "G4ParticleDefinition.hh" 38 #include "G4ParticleDefinition.hh" 39 39 40 #include "G4CrossSectionDataSetRegistry.hh" 40 #include "G4CrossSectionDataSetRegistry.hh" 41 41 42 ////////////////////////////////////////////// 42 /////////////////////////////////////////////////////////////////////////////// 43 43 44 44 45 G4ChipsComponentXS::G4ChipsComponentXS():G4VCo 45 G4ChipsComponentXS::G4ChipsComponentXS():G4VComponentCrossSection("G4ChipsComponentXS"), fUpperLimit( 10000 * GeV ), 46 fLowerLimit( 10 * MeV ) 46 fLowerLimit( 10 * MeV ) 47 { 47 { 48 PxsManagerEl = (G4ChipsProtonElasticXS* 48 PxsManagerEl = (G4ChipsProtonElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsProtonElasticXS::Default_Name()); 49 PxsManagerInEl = (G4ChipsProtonInelasticX 49 PxsManagerInEl = (G4ChipsProtonInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsProtonInelasticXS::Default_Name()); 50 50 51 NxsManagerEl = (G4ChipsNeutronElasticXS 51 NxsManagerEl = (G4ChipsNeutronElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsNeutronElasticXS::Default_Name()); 52 NxsManagerInEl = (G4ChipsNeutronInelastic 52 NxsManagerInEl = (G4ChipsNeutronInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsNeutronInelasticXS::Default_Name()); 53 53 54 PBARxsManagerEl = (G4ChipsAntiBaryonElasti 54 PBARxsManagerEl = (G4ChipsAntiBaryonElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsAntiBaryonElasticXS::Default_Name()); 55 PBARxsManagerInEl = (G4ChipsAntiBaryonInelas 55 PBARxsManagerInEl = (G4ChipsAntiBaryonInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsAntiBaryonInelasticXS::Default_Name()); 56 56 57 PIPxsManagerEl = (G4ChipsPionPlusElasticX 57 PIPxsManagerEl = (G4ChipsPionPlusElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsPionPlusElasticXS::Default_Name()); 58 PIPxsManagerInEl = (G4ChipsPionPlusInelasti 58 PIPxsManagerInEl = (G4ChipsPionPlusInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsPionPlusInelasticXS::Default_Name()); 59 59 60 PIMxsManagerEl = (G4ChipsPionMinusElastic 60 PIMxsManagerEl = (G4ChipsPionMinusElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsPionMinusElasticXS::Default_Name()); 61 PIMxsManagerInEl = (G4ChipsPionMinusInelast 61 PIMxsManagerInEl = (G4ChipsPionMinusInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsPionMinusInelasticXS::Default_Name()); 62 62 63 KPxsManagerEl = (G4ChipsKaonPlusElasticX 63 KPxsManagerEl = (G4ChipsKaonPlusElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonPlusElasticXS::Default_Name()); 64 KPxsManagerInEl = (G4ChipsKaonPlusInelasti 64 KPxsManagerInEl = (G4ChipsKaonPlusInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonPlusInelasticXS::Default_Name()); 65 65 66 KMxsManagerEl = (G4ChipsKaonMinusElastic 66 KMxsManagerEl = (G4ChipsKaonMinusElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonMinusElasticXS::Default_Name()); 67 KMxsManagerInEl = (G4ChipsKaonMinusInelast 67 KMxsManagerInEl = (G4ChipsKaonMinusInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonMinusInelasticXS::Default_Name()); 68 68 69 KZxsManagerEl = (G4ChipsKaonZeroElasticX 69 KZxsManagerEl = (G4ChipsKaonZeroElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonZeroElasticXS::Default_Name()); 70 KZxsManagerInEl = (G4ChipsKaonZeroInelasti 70 KZxsManagerInEl = (G4ChipsKaonZeroInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonZeroInelasticXS::Default_Name()); 71 71 72 HxsManagerEl = (G4ChipsHyperonElasticXS* 72 HxsManagerEl = (G4ChipsHyperonElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsHyperonElasticXS::Default_Name()); 73 HxsManagerInEl = (G4ChipsHyperonInelasticX 73 HxsManagerInEl = (G4ChipsHyperonInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsHyperonInelasticXS::Default_Name()); 74 } 74 } 75 75 76 ////////////////////////////////////////////// 76 /////////////////////////////////////////////////////////////////////////////////////// 77 G4ChipsComponentXS::~G4ChipsComponentXS() 77 G4ChipsComponentXS::~G4ChipsComponentXS() 78 { 78 { 79 } 79 } 80 80 81 ////////////////////////////////////////////// 81 //////////////////////////////////////////////////////////////////////////////// 82 G4double G4ChipsComponentXS::GetTotalElementCr 82 G4double G4ChipsComponentXS::GetTotalElementCrossSection 83 (const G4ParticleDefinition* aParticle, G4doub 83 (const G4ParticleDefinition* aParticle, G4double kinEnergy, G4int Z, G4double N) 84 { 84 { 85 G4double momentum = std::sqrt(kinEnergy*(kin 85 G4double momentum = std::sqrt(kinEnergy*(kinEnergy+2.*aParticle->GetPDGMass())); 86 G4int PDGcode=aParticle->GetPDGEncoding(); 86 G4int PDGcode=aParticle->GetPDGEncoding(); 87 87 88 G4double Xelastic(0.), Xinelastic(0.); 88 G4double Xelastic(0.), Xinelastic(0.); 89 89 90 if (PDGcode == 2212) // Projectile is 90 if (PDGcode == 2212) // Projectile is Proton 91 { 91 { 92 Xelastic = PxsManagerEl->GetChipsCrossSec 92 Xelastic = PxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 93 Xinelastic = PxsManagerInEl->GetChipsCrossS 93 Xinelastic = PxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 94 } else if(PDGcode == 2112) // Projectile is 94 } else if(PDGcode == 2112) // Projectile is Neutron 95 { 95 { 96 Xelastic = NxsManagerEl->GetChipsCrossSecti 96 Xelastic = NxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 97 Xinelastic = NxsManagerInEl->GetChipsCrossS 97 Xinelastic = NxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 98 } else if(PDGcode == -2212) // Projectile is 98 } else if(PDGcode == -2212) // Projectile is Anti-Proton 99 { 99 { 100 Xelastic = PBARxsManagerEl->GetChipsCrossSe 100 Xelastic = PBARxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 101 Xinelastic = PBARxsManagerInEl->GetChipsCro 101 Xinelastic = PBARxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 102 } else if(PDGcode == -2112) // Projectile is 102 } else if(PDGcode == -2112) // Projectile is Anti-Neutron 103 { 103 { 104 Xelastic = PBARxsManagerEl->GetChipsCrossSe 104 Xelastic = PBARxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 105 Xinelastic = PBARxsManagerInEl->GetChipsCro 105 Xinelastic = PBARxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 106 }else if(PDGcode == -3122 || PDGcode == -322 106 }else if(PDGcode == -3122 || PDGcode == -3222 || PDGcode == -3212 || PDGcode == -3112 || PDGcode == -3322 107 || PDGcode == -3312 || PDGcode == -3334) 107 || PDGcode == -3312 || PDGcode == -3334) // Projectile is other Anti-baryon 108 { 108 { 109 Xelastic = PBARxsManagerEl->GetChipsCrossSe 109 Xelastic = PBARxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 110 Xinelastic = PBARxsManagerInEl->GetChipsCro 110 Xinelastic = PBARxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 111 } else if(PDGcode == 211) // Projectile is 111 } else if(PDGcode == 211) // Projectile is Pi+ 112 { 112 { 113 Xelastic = PIPxsManagerEl->GetChipsCrossSec 113 Xelastic = PIPxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 114 Xinelastic = PIPxsManagerInEl->GetChipsCros 114 Xinelastic = PIPxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 115 } else if(PDGcode == -211) // Projectile is 115 } else if(PDGcode == -211) // Projectile is Pi- 116 { 116 { 117 Xelastic = PIMxsManagerEl->GetChipsCrossSec 117 Xelastic = PIMxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 118 Xinelastic = PIMxsManagerInEl->GetChipsCros 118 Xinelastic = PIMxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 119 } else if(PDGcode == 321) // Projectile is 119 } else if(PDGcode == 321) // Projectile is K+ 120 { 120 { 121 Xelastic = KPxsManagerEl->GetChipsCrossSect 121 Xelastic = KPxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 122 Xinelastic = KPxsManagerInEl->GetChipsCross 122 Xinelastic = KPxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 123 } else if(PDGcode == -321) // Projectile is 123 } else if(PDGcode == -321) // Projectile is K- 124 { 124 { 125 Xelastic = KMxsManagerEl->GetChipsCrossSect 125 Xelastic = KMxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 126 Xinelastic = KMxsManagerInEl->GetChipsCross 126 Xinelastic = KMxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 127 } else if(PDGcode == 130 || PDGcode == 310 127 } else if(PDGcode == 130 || PDGcode == 310 || PDGcode == 311 || PDGcode == -311) // Projectile is K0 128 { 128 { 129 Xelastic = KZxsManagerEl->GetChipsCrossSect 129 Xelastic = KZxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 130 Xinelastic = KZxsManagerInEl->GetChipsCross 130 Xinelastic = KZxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 131 }else if(PDGcode == 3122 || PDGcode == 32 131 }else if(PDGcode == 3122 || PDGcode == 3222 || PDGcode == 3112 || PDGcode == 3212 132 || PDGcode == 3312 || PDGcode == 3322 132 || PDGcode == 3312 || PDGcode == 3322 || PDGcode == 3334) // Projectile is hyperon 133 { 133 { 134 Xelastic = HxsManagerEl->GetChipsCrossSecti 134 Xelastic = HxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 135 Xinelastic = HxsManagerInEl->GetChipsCrossS 135 Xinelastic = HxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 136 } 136 } 137 137 138 return Xelastic+Xinelastic; 138 return Xelastic+Xinelastic; 139 } 139 } 140 140 141 ////////////////////////////////////////////// 141 //////////////////////////////////////////////////////////////////////////////// 142 G4double G4ChipsComponentXS::GetTotalIsotopeCr 142 G4double G4ChipsComponentXS::GetTotalIsotopeCrossSection 143 (const G4ParticleDefinition* aParticle, G4doub 143 (const G4ParticleDefinition* aParticle, G4double kinEnergy, G4int Z, G4int A ) 144 { return GetTotalElementCrossSection(aParticle 144 { return GetTotalElementCrossSection(aParticle, kinEnergy, Z, (G4double) A); } 145 145 146 ////////////////////////////////////////////// 146 //////////////////////////////////////////////////////////////////////////////// 147 G4double G4ChipsComponentXS::GetInelasticEleme 147 G4double G4ChipsComponentXS::GetInelasticElementCrossSection 148 (const G4ParticleDefinition* aParticle, G4doub 148 (const G4ParticleDefinition* aParticle, G4double kinEnergy, G4int Z, G4double N) 149 { 149 { 150 G4double momentum = std::sqrt(kinEnergy*(kin 150 G4double momentum = std::sqrt(kinEnergy*(kinEnergy+2.*aParticle->GetPDGMass())); 151 G4int PDGcode=aParticle->GetPDGEncoding(); 151 G4int PDGcode=aParticle->GetPDGEncoding(); 152 152 153 G4double Xinelastic(0.); 153 G4double Xinelastic(0.); 154 154 155 if (PDGcode == 2212) // Projectile is 155 if (PDGcode == 2212) // Projectile is Proton 156 { 156 { 157 Xinelastic = PxsManagerInEl->GetChipsCrossS 157 Xinelastic = PxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 158 } else if(PDGcode == 2112) // Projectile is 158 } else if(PDGcode == 2112) // Projectile is Neutron 159 { 159 { 160 Xinelastic = NxsManagerInEl->GetChipsCrossS 160 Xinelastic = NxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 161 } else if(PDGcode == -2212) // Projectile is 161 } else if(PDGcode == -2212) // Projectile is Anti-Proton 162 { 162 { 163 Xinelastic = PBARxsManagerInEl->GetChipsCro 163 Xinelastic = PBARxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 164 } else if(PDGcode == -2112) // Projectile is 164 } else if(PDGcode == -2112) // Projectile is Anti-Neutron 165 { 165 { 166 Xinelastic = PBARxsManagerInEl->GetChipsCro 166 Xinelastic = PBARxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 167 } else if(PDGcode == 211) // Projectile is 167 } else if(PDGcode == 211) // Projectile is Pi+ 168 { 168 { 169 Xinelastic = PIPxsManagerInEl->GetChipsCros 169 Xinelastic = PIPxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 170 } else if(PDGcode == -211) // Projectile is 170 } else if(PDGcode == -211) // Projectile is Pi- 171 { 171 { 172 Xinelastic = PIMxsManagerInEl->GetChipsCros 172 Xinelastic = PIMxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 173 } else if(PDGcode == 321) // Projectile is 173 } else if(PDGcode == 321) // Projectile is K+ 174 { 174 { 175 Xinelastic = KPxsManagerInEl->GetChipsCross 175 Xinelastic = KPxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 176 } else if(PDGcode == -321) // Projectile is 176 } else if(PDGcode == -321) // Projectile is K- 177 { 177 { 178 Xinelastic = KMxsManagerInEl->GetChipsCross 178 Xinelastic = KMxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);; 179 } 179 } 180 180 181 return Xinelastic; 181 return Xinelastic; 182 } 182 } 183 183 184 ////////////////////////////////////////////// 184 /////////////////////////////////////////////////////////////////////////////// 185 G4double G4ChipsComponentXS::GetInelasticIsoto 185 G4double G4ChipsComponentXS::GetInelasticIsotopeCrossSection 186 (const G4ParticleDefinition* aParticle, G4doub 186 (const G4ParticleDefinition* aParticle, G4double kinEnergy, G4int Z, G4int A) 187 {return GetInelasticElementCrossSection(aParti 187 {return GetInelasticElementCrossSection(aParticle, kinEnergy, Z, (G4double) A); } 188 188 189 ////////////////////////////////////////////// 189 /////////////////////////////////////////////////////////////////////////////// 190 G4double G4ChipsComponentXS::GetElasticElement 190 G4double G4ChipsComponentXS::GetElasticElementCrossSection 191 (const G4ParticleDefinition* aParticle, G4doub 191 (const G4ParticleDefinition* aParticle, G4double kinEnergy, G4int Z, G4double N) 192 { 192 { 193 G4double momentum = std::sqrt(kinEnergy*(kin 193 G4double momentum = std::sqrt(kinEnergy*(kinEnergy+2.*aParticle->GetPDGMass())); 194 G4int PDGcode=aParticle->GetPDGEncoding(); 194 G4int PDGcode=aParticle->GetPDGEncoding(); 195 195 196 G4double Xelastic(0.); 196 G4double Xelastic(0.); 197 197 198 if (PDGcode == 2212) // Projectile is 198 if (PDGcode == 2212) // Projectile is Proton 199 { 199 { 200 Xelastic=PxsManagerEl->GetChipsCrossSection 200 Xelastic=PxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 201 } else if(PDGcode == 2112) // Projectile is 201 } else if(PDGcode == 2112) // Projectile is Neutron 202 { 202 { 203 Xelastic=NxsManagerEl->GetChipsCrossSection 203 Xelastic=NxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 204 } else if(PDGcode == -2212) // Projectile is 204 } else if(PDGcode == -2212) // Projectile is Anti-Proton 205 { 205 { 206 Xelastic=PBARxsManagerEl->GetChipsCrossSect 206 Xelastic=PBARxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 207 } else if(PDGcode == -2112) // Projectile is 207 } else if(PDGcode == -2112) // Projectile is Anti-Neutron 208 { 208 { 209 Xelastic=PBARxsManagerEl->GetChipsCrossSect 209 Xelastic=PBARxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 210 } else if(PDGcode == 211) // Projectile is 210 } else if(PDGcode == 211) // Projectile is Pi+ 211 { 211 { 212 Xelastic=PIPxsManagerEl->GetChipsCrossSecti 212 Xelastic=PIPxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 213 } else if(PDGcode == -211) // Projectile is 213 } else if(PDGcode == -211) // Projectile is Pi- 214 { 214 { 215 Xelastic=PIMxsManagerEl->GetChipsCrossSecti 215 Xelastic=PIMxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 216 } else if(PDGcode == 321) // Projectile is 216 } else if(PDGcode == 321) // Projectile is K+ 217 { 217 { 218 Xelastic=KPxsManagerEl->GetChipsCrossSectio 218 Xelastic=KPxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 219 } else if(PDGcode == -321) // Projectile is 219 } else if(PDGcode == -321) // Projectile is K- 220 { 220 { 221 Xelastic=KMxsManagerEl->GetChipsCrossSectio 221 Xelastic=KMxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 222 } 222 } 223 return Xelastic; 223 return Xelastic; 224 } 224 } 225 225 226 ////////////////////////////////////////////// 226 /////////////////////////////////////////////////////////////////////////////// 227 G4double G4ChipsComponentXS::GetElasticIsotope 227 G4double G4ChipsComponentXS::GetElasticIsotopeCrossSection 228 (const G4ParticleDefinition* aParticle, G4doub 228 (const G4ParticleDefinition* aParticle, G4double kinEnergy, G4int Z, G4int A) 229 { return GetElasticElementCrossSection(aPartic 229 { return GetElasticElementCrossSection(aParticle, kinEnergy, Z, (G4double) A); } 230 230