Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************************************** 25 // 26 // 27 // Geant4 class G4HadParticles 28 // 29 // Author V.Ivanchenko 09.05.2020 30 // 31 32 #include "G4HadParticles.hh" 33 34 const std::vector<G4int>& G4HadParticles::GetLightHadrons() 35 { 36 // p, n, pi+, pi- 37 static const std::vector<G4int> sLightHadrons = { 38 2212, 2112, 211, -211 39 }; 40 return sLightHadrons; 41 } 42 43 const std::vector<G4int>& G4HadParticles::GetHyperons() 44 { 45 // Lambda, Sigma+, Sigma-, Xi0, Xi-, Omega- 46 // (note that Sigma0 has not been included because it decays very quickly) 47 static const std::vector<G4int> sHyperons = { 48 3122, 3222, 3112, 3322, 3312, 3334 49 }; 50 return sHyperons; 51 } 52 53 const std::vector<G4int>& G4HadParticles::GetAntiHyperons() 54 { 55 // anti_Lambda, anti_Sigma+, anti_Sigma-, anti_Xi0, anti_Xi-, anti_Omega- 56 // (note that anti_Sigma0 has not been included because it decays very quickly) 57 static const std::vector<G4int> sAntiHyperons = { 58 -3122, -3222, -3112, -3322, -3312, -3334 59 }; 60 return sAntiHyperons; 61 } 62 63 const std::vector<G4int>& G4HadParticles::GetKaons() 64 { 65 // K+, K-, KS, KL 66 static const std::vector<G4int> sKaons = { 67 321, -321, 310, 130 68 }; 69 return sKaons; 70 } 71 72 const std::vector<G4int>& G4HadParticles::GetBCHadrons() 73 { 74 // Note: etac, JPsi, SigmaC++, SigmaC+, SigmaC0, Upsilon, 75 // SigmaB+, SigmaB0, SigmaB- are not included because 76 // they decay very quickly (therefore, their hadronic 77 // interactions can be neglected, as for pi0 and Sigma0). 78 static const std::vector<G4int> sBCHadrons = { 79 // D+, D0, D-, D0bar, Ds+, Ds- 80 411, 421, -411, -421, 431, -431, 81 // B+, B0, B-, B0bar, Bs0, Bs0bar, Bc+, Bc-, 82 521, 511, -521, -511, 531, -531, 541, -541, 83 // LambdaC+, XiC+, XiC0, OmegaC0 84 4122, 4232, 4132, 4332, 85 // LambdaB, XiB0, XiB-, OmegaB- 86 5122, 5232, 5132, 5332, 87 // corresponding anti_baryons 88 -4122, -4232, -4132, -4332, 89 -5122, -5232, -5132, -5332 90 }; 91 return sBCHadrons; 92 } 93 94 const std::vector<G4int>& G4HadParticles::GetLightIons() 95 { 96 // d, t, He3, alpha 97 static const std::vector<G4int> sLightIons = { 98 1000010020, 1000010030, 1000020030, 1000020040 99 }; 100 return sLightIons; 101 } 102 103 const std::vector<G4int>& G4HadParticles::GetLightAntiIons() 104 { 105 // pbar, nbar, light anti-ions 106 static const std::vector<G4int> sLightAntiIons = { 107 -2212, -2112, -1000010020, -1000010030, -1000020030, -1000020040 108 }; 109 return sLightAntiIons; 110 } 111 112 const std::vector<G4int>& G4HadParticles::GetHyperNuclei() 113 { 114 // hyper_t, hyper_H4, hyper_He4, hyder_He5, 2-hyper-2n, 2-hyper_H4 115 static const std::vector<G4int> sHyperNuclei = { 116 1010010030, 1010010040, 1010020040, 1010020050, 1020000040, 1020010040 117 }; 118 return sHyperNuclei; 119 } 120 121 const std::vector<G4int>& G4HadParticles::GetHyperAntiNuclei() 122 { 123 // anti-hyper-nuclei 124 static const std::vector<G4int> sHyperAntiNuclei = { 125 -1010010030, -1010010040, -1010020040, -1010020050, -1020000040, -1020010040 126 }; 127 return sHyperAntiNuclei; 128 } 129 130 const std::vector<G4int>& G4HadParticles::GetHeavyChargedParticles() 131 { 132 // 133 // charged particles for EM physics 134 // 135 static const std::vector<G4int> sHeavyChargedPart = { 136 // Sigma+, Sigma-, Xi-, Omega-, anti_hyperons 137 3222, 3112, 3312, 3334, -3222, -3112, -3312, -3334, 138 // light anti_ions 139 -1000010020, -1000010030, -1000020030, -1000020040, 140 // tau+- 141 15, -15 142 }; 143 return sHeavyChargedPart; 144 } 145 146 const std::vector<G4int>& G4HadParticles::GetBCChargedHadrons() 147 { 148 static const std::vector<G4int> sBCChargedHadrons = { 149 // D+, D-, Ds+, Ds- 150 411, -411, 431, -431, 151 // B+, B-, Bc+, Bc-, 152 521, -521, 541, -541, 153 // LambdaC+, SigmaC++, SigmaC+, XiC+ 154 4122, 4222, 4212, 4232, 155 // SigmaB+, SigmaB-, XiB-, OmegaB- 156 5222, 5112, 5132, 5332, 157 // anti_baryons 158 -4122, -4222, -4212, -4232, -5222, -5112, -5132, -5332 159 }; 160 return sBCChargedHadrons; 161 } 162 163 const std::vector<G4int>& G4HadParticles::GetChargedHyperNuclei() 164 { 165 // hyper_t 166 static const std::vector<G4int> sChargedHyperNuclei = { 167 1010010030, 1010010040, 1010020040, 1010020050, 1020010040, 168 -1010010030, -1010010040, -1010020040, -1010020050, -1020010040 169 }; 170 return sChargedHyperNuclei; 171 } 172