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 // 26 // 27 // Geant4 class G4HadParticles 27 // Geant4 class G4HadParticles 28 // 28 // 29 // Author V.Ivanchenko 09.05.2020 29 // Author V.Ivanchenko 09.05.2020 30 // 30 // 31 31 32 #include "G4HadParticles.hh" 32 #include "G4HadParticles.hh" 33 33 >> 34 // p, n, pi+, pi- >> 35 const std::vector<G4int> G4HadParticles::sLightHadrons = { >> 36 2212, 2112, 211, -211 >> 37 }; >> 38 >> 39 // Lambda, Sigma+, Sigma-, Xi0, Xi-, Omega- >> 40 // (note that Sigma0 has not been included because it decays very quickly) >> 41 const std::vector<G4int> G4HadParticles::sHyperons = { >> 42 3122, 3222, 3112, 3322, 3312, 3334 >> 43 }; >> 44 >> 45 // anti_Lambda, anti_Sigma+, anti_Sigma-, anti_Xi0, anti_Xi-, anti_Omega- >> 46 // (note that anti_Sigma0 has not been included because it decays very quickly) >> 47 const std::vector<G4int> G4HadParticles::sAntiHyperons = { >> 48 -3122, -3222, -3112, -3322, -3312, -3334 >> 49 }; >> 50 >> 51 // K+, K-, KS, KL >> 52 const std::vector<G4int> G4HadParticles::sKaons = { >> 53 321, -321, 310, 130 >> 54 }; >> 55 >> 56 // Note: etac, JPsi, SigmaC++, SigmaC+, SigmaC0, Upsilon, >> 57 // SigmaB+, SigmaB0, SigmaB- are not included because >> 58 // they decay very quickly (therefore, their hadronic >> 59 // interactions can be neglected, as for pi0 and Sigma0). >> 60 const std::vector<G4int> G4HadParticles::sBCHadrons = { >> 61 // D+, D0, D-, D0bar, Ds+, Ds- >> 62 411, 421, -411, -421, 431, -431, >> 63 // B+, B0, B-, B0bar, Bs0, Bs0bar, Bc+, Bc-, >> 64 521, 511, -521, -511, 531, -531, 541, -541, >> 65 // LambdaC+, XiC+, XiC0, OmegaC0 >> 66 4122, 4232, 4132, 4332, >> 67 // LambdaB, XiB0, XiB-, OmegaB- >> 68 5122, 5232, 5132, 5332, >> 69 // corresponding anti_baryons >> 70 -4122, -4232, -4132, -4332, >> 71 -5122, -5232, -5132, -5332 >> 72 }; >> 73 >> 74 // d, t, He3, alpha >> 75 const std::vector<G4int> G4HadParticles::sLightIons = { >> 76 1000010020, 1000010030, 1000020030, 1000020040 >> 77 }; >> 78 >> 79 // pbar, nbar, light anti-ions >> 80 const std::vector<G4int> G4HadParticles::sLightAntiIons = { >> 81 -2212, -2112, -1000010020, -1000010030, -1000020030, -1000020040 >> 82 }; >> 83 >> 84 // hyper_t, hyper_H4, hyper_He4, hyder_He5, 2-hyper-2n, 2-hyper_H4 >> 85 const std::vector<G4int> G4HadParticles::sHyperNuclei = { >> 86 1010010030, 1010010040, 1010020040, 1010020050, 1020000040, 1020010040 >> 87 }; >> 88 >> 89 // anti-hyper-nuclei >> 90 const std::vector<G4int> G4HadParticles::sHyperAntiNuclei = { >> 91 -1010010030, -1010010040, -1010020040, -1010020050, -1020000040, -1020010040 >> 92 }; >> 93 >> 94 // >> 95 // charged particles for EM physics >> 96 // >> 97 const std::vector<G4int> G4HadParticles::sHeavyChargedPart = { >> 98 // Sigma+, Sigma-, Xi-, Omega-, anti_hyperons >> 99 3222, 3112, 3312, 3334, -3222, -3112, -3312, -3334, >> 100 // light anti_ions >> 101 -1000010020, -1000010030, -1000020030, -1000020040, >> 102 // tau+- >> 103 15, -15 >> 104 }; >> 105 >> 106 const std::vector<G4int> G4HadParticles::sBCChargedHadrons = { >> 107 // D+, D-, Ds+, Ds- >> 108 411, -411, 431, -431, >> 109 // B+, B-, Bc+, Bc-, >> 110 521, -521, 541, -541, >> 111 // LambdaC+, SigmaC++, SigmaC+, XiC+ >> 112 4122, 4222, 4212, 4232, >> 113 // SigmaB+, SigmaB-, XiB-, OmegaB- >> 114 5222, 5112, 5132, 5332, >> 115 // anti_baryons >> 116 -4122, -4222, -4212, -4232, -5222, -5112, -5132, -5332 >> 117 }; >> 118 >> 119 // hyper_t >> 120 const std::vector<G4int> G4HadParticles::sChargedHyperNuclei = { >> 121 1010010030, 1010010040, 1010020040, 1010020050, 1020010040, >> 122 -1010010030, -1010010040, -1010020040, -1010020050, -1020010040 >> 123 }; >> 124 34 const std::vector<G4int>& G4HadParticles::GetL 125 const std::vector<G4int>& G4HadParticles::GetLightHadrons() 35 { 126 { 36 // p, n, pi+, pi- << 37 static const std::vector<G4int> sLightHadron << 38 2212, 2112, 211, -211 << 39 }; << 40 return sLightHadrons; 127 return sLightHadrons; 41 } 128 } 42 129 43 const std::vector<G4int>& G4HadParticles::GetH 130 const std::vector<G4int>& G4HadParticles::GetHyperons() 44 { 131 { 45 // Lambda, Sigma+, Sigma-, Xi0, Xi-, Omega- << 46 // (note that Sigma0 has not been included b << 47 static const std::vector<G4int> sHyperons = << 48 3122, 3222, 3112, 3322, 3312, 3334 << 49 }; << 50 return sHyperons; 132 return sHyperons; 51 } 133 } 52 134 53 const std::vector<G4int>& G4HadParticles::GetA 135 const std::vector<G4int>& G4HadParticles::GetAntiHyperons() 54 { 136 { 55 // anti_Lambda, anti_Sigma+, anti_Sigma-, an << 56 // (note that anti_Sigma0 has not been inclu << 57 static const std::vector<G4int> sAntiHyperon << 58 -3122, -3222, -3112, -3322, -3312, -3334 << 59 }; << 60 return sAntiHyperons; 137 return sAntiHyperons; 61 } 138 } 62 139 63 const std::vector<G4int>& G4HadParticles::GetK 140 const std::vector<G4int>& G4HadParticles::GetKaons() 64 { 141 { 65 // K+, K-, KS, KL << 66 static const std::vector<G4int> sKaons = { << 67 321, -321, 310, 130 << 68 }; << 69 return sKaons; 142 return sKaons; 70 } 143 } 71 144 72 const std::vector<G4int>& G4HadParticles::GetB 145 const std::vector<G4int>& G4HadParticles::GetBCHadrons() 73 { 146 { 74 // Note: etac, JPsi, SigmaC++, SigmaC+, Sigm << 75 // SigmaB+, SigmaB0, SigmaB- are not i << 76 // they decay very quickly (therefore, their << 77 // interactions can be neglected, as for pi0 << 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; 147 return sBCHadrons; 92 } 148 } 93 149 94 const std::vector<G4int>& G4HadParticles::GetL 150 const std::vector<G4int>& G4HadParticles::GetLightIons() 95 { 151 { 96 // d, t, He3, alpha << 97 static const std::vector<G4int> sLightIons = << 98 1000010020, 1000010030, 1000020030, 100002 << 99 }; << 100 return sLightIons; 152 return sLightIons; 101 } 153 } 102 154 103 const std::vector<G4int>& G4HadParticles::GetL 155 const std::vector<G4int>& G4HadParticles::GetLightAntiIons() 104 { 156 { 105 // pbar, nbar, light anti-ions << 106 static const std::vector<G4int> sLightAntiIo << 107 -2212, -2112, -1000010020, -1000010030, -1 << 108 }; << 109 return sLightAntiIons; 157 return sLightAntiIons; 110 } 158 } 111 159 112 const std::vector<G4int>& G4HadParticles::GetH 160 const std::vector<G4int>& G4HadParticles::GetHyperNuclei() 113 { 161 { 114 // hyper_t, hyper_H4, hyper_He4, hyder_He5, << 115 static const std::vector<G4int> sHyperNuclei << 116 1010010030, 1010010040, 1010020040, 101002 << 117 }; << 118 return sHyperNuclei; 162 return sHyperNuclei; 119 } 163 } 120 164 121 const std::vector<G4int>& G4HadParticles::GetH 165 const std::vector<G4int>& G4HadParticles::GetHyperAntiNuclei() 122 { 166 { 123 // anti-hyper-nuclei << 124 static const std::vector<G4int> sHyperAntiNu << 125 -1010010030, -1010010040, -1010020040, -10 << 126 }; << 127 return sHyperAntiNuclei; 167 return sHyperAntiNuclei; 128 } 168 } 129 169 130 const std::vector<G4int>& G4HadParticles::GetH 170 const std::vector<G4int>& G4HadParticles::GetHeavyChargedParticles() 131 { 171 { 132 // << 133 // charged particles for EM physics << 134 // << 135 static const std::vector<G4int> sHeavyCharge << 136 // Sigma+, Sigma-, Xi-, Omega-, anti_hyper << 137 3222, 3112, 3312, 3334, -3222, -3112, -331 << 138 // light anti_ions << 139 -1000010020, -1000010030, -1000020030, -10 << 140 // tau+- << 141 15, -15 << 142 }; << 143 return sHeavyChargedPart; 172 return sHeavyChargedPart; 144 } 173 } 145 174 146 const std::vector<G4int>& G4HadParticles::GetB 175 const std::vector<G4int>& G4HadParticles::GetBCChargedHadrons() 147 { 176 { 148 static const std::vector<G4int> sBCChargedHa << 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, << 159 }; << 160 return sBCChargedHadrons; 177 return sBCChargedHadrons; 161 } 178 } 162 179 163 const std::vector<G4int>& G4HadParticles::GetC 180 const std::vector<G4int>& G4HadParticles::GetChargedHyperNuclei() 164 { 181 { 165 // hyper_t << 166 static const std::vector<G4int> sChargedHype << 167 1010010030, 1010010040, 1010020040, 101 << 168 -1010010030, -1010010040, -1010020040, -10 << 169 }; << 170 return sChargedHyperNuclei; 182 return sChargedHyperNuclei; 171 } 183 } 172 184