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 #include "G4SPBaryon.hh" 26 #include "G4SPBaryon.hh" 27 #include "Randomize.hh" 27 #include "Randomize.hh" 28 #include "G4ParticleTable.hh" 28 #include "G4ParticleTable.hh" 29 29 30 // correcting numbers, HPW Dec 1999 30 // correcting numbers, HPW Dec 1999 31 31 32 G4int G4SPBaryon::FindQuark(G4int diQuark) con 32 G4int G4SPBaryon::FindQuark(G4int diQuark) const 33 { 33 { 34 G4double sum = GetProbability(diQuark); 34 G4double sum = GetProbability(diQuark); 35 G4double random = G4UniformRand(); 35 G4double random = G4UniformRand(); 36 G4double running = 0; 36 G4double running = 0; 37 G4int Quark(0); << 38 typedef std::vector<G4SPPartonInfo *>::const 37 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 39 iter i; 38 iter i; 40 for (i = thePartonInfo.begin(); i!=theParton << 39 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 41 { 40 { 42 if (std::abs((*i)->GetDiQuark()) == std::a 41 if (std::abs((*i)->GetDiQuark()) == std::abs(diQuark)) 43 { 42 { 44 running += (*i)->GetProbability(); 43 running += (*i)->GetProbability(); 45 if (running/sum >= random) << 44 if (running/sum >= random) 46 { 45 { 47 Quark = (*i)->GetQuark(); << 46 diQuark = (*i)->GetDiQuark(); 48 break; << 47 break; 49 } 48 } 50 } 49 } 51 } 50 } 52 return Quark; << 51 return (*i)->GetQuark(); 53 } 52 } 54 << 53 55 << 56 G4double G4SPBaryon::GetProbability(G4int diQu 54 G4double G4SPBaryon::GetProbability(G4int diQuark) const 57 { 55 { 58 G4double sum = 0; 56 G4double sum = 0; 59 typedef std::vector<G4SPPartonInfo *>::const 57 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 60 iter i; 58 iter i; 61 for (i = thePartonInfo.begin(); i!=theParton << 59 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 62 { 60 { 63 if (std::abs((*i)->GetDiQuark()) == std::a 61 if (std::abs((*i)->GetDiQuark()) == std::abs(diQuark)) 64 { 62 { 65 sum += (*i)->GetProbability(); 63 sum += (*i)->GetProbability(); 66 } 64 } 67 } 65 } 68 return sum; 66 return sum; 69 } 67 } 70 68 71 << 72 G4int G4SPBaryon:: 69 G4int G4SPBaryon:: 73 MatchDiQuarkAndGetQuark(const G4SPBaryon & aBa 70 MatchDiQuarkAndGetQuark(const G4SPBaryon & aBaryon, G4int & aDiQuark) const 74 { 71 { 75 G4int result=0; 72 G4int result=0; 76 typedef std::vector<G4SPPartonInfo *>::const 73 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 77 iter i; 74 iter i; 78 G4double running = 0; 75 G4double running = 0; 79 G4double total = 0; 76 G4double total = 0; 80 for (i = thePartonInfo.begin(); i!=theParton << 77 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 81 { 78 { 82 total += aBaryon.GetProbability((*i)->GetD 79 total += aBaryon.GetProbability((*i)->GetDiQuark()); 83 } 80 } 84 G4double random = G4UniformRand(); << 81 G4double random = G4UniformRand()*total; 85 for(i = thePartonInfo.begin(); i!=thePartonI 82 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 86 { 83 { 87 running += aBaryon.GetProbability((*i)->Ge 84 running += aBaryon.GetProbability((*i)->GetDiQuark()); 88 if (random<running/total) << 85 if(random/total<running) break; 89 { << 90 result = (*i)->GetQuark(); // (diquark << 91 aDiQuark = (*i)->GetDiQuark(); << 92 break; << 93 } << 94 } 86 } >> 87 result = (*i)->GetQuark(); // (diquark annihilated) >> 88 aDiQuark = (*i)->GetDiQuark(); 95 return result; 89 return result; 96 } 90 } 97 91 98 << 99 void G4SPBaryon:: 92 void G4SPBaryon:: 100 SampleQuarkAndDiquark(G4int & quark, G4int & d 93 SampleQuarkAndDiquark(G4int & quark, G4int & diQuark) const 101 { 94 { 102 typedef std::vector<G4SPPartonInfo *>::const 95 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 103 << 104 G4double random = G4UniformRand(); 96 G4double random = G4UniformRand(); 105 G4double sum = 0; 97 G4double sum = 0; 106 iter i; 98 iter i; 107 << 99 for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++) 108 for (i=thePartonInfo.begin() ; i!=thePartonI << 109 { 100 { 110 sum += (*i)->GetProbability(); 101 sum += (*i)->GetProbability(); 111 if (sum > random) << 102 if (sum > random) 112 { 103 { 113 if (theDefinition->GetPDGEncoding() < 0) 104 if (theDefinition->GetPDGEncoding() < 0) 114 { 105 { 115 quark = (*i)->GetDiQuark(); << 106 quark = (*i)->GetDiQuark(); 116 diQuark = (*i)->GetQuark(); << 107 diQuark = (*i)->GetQuark(); 117 } 108 } 118 else 109 else 119 { 110 { 120 quark = (*i)->GetQuark(); << 111 quark = (*i)->GetQuark(); 121 diQuark = (*i)->GetDiQuark(); << 112 diQuark = (*i)->GetDiQuark(); 122 } 113 } 123 break; << 114 break; 124 } << 115 } 125 } 116 } 126 } 117 } 127 118 128 << 129 void G4SPBaryon:: 119 void G4SPBaryon:: 130 FindDiquark(G4int quark, G4int & diQuark) cons 120 FindDiquark(G4int quark, G4int & diQuark) const 131 { 121 { 132 typedef std::vector<G4SPPartonInfo *>::const 122 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 133 G4double sum = 0; 123 G4double sum = 0; 134 iter i; << 124 iter i; 135 for (i=thePartonInfo.begin() ; i!=thePartonI << 125 for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++) 136 { 126 { 137 if (std::abs((*i)->GetQuark()) == std::abs 127 if (std::abs((*i)->GetQuark()) == std::abs(quark)) 138 { 128 { 139 sum += (*i)->GetProbability(); 129 sum += (*i)->GetProbability(); 140 } 130 } 141 } 131 } 142 G4double random = G4UniformRand(); 132 G4double random = G4UniformRand(); 143 G4double running = 0; 133 G4double running = 0; 144 for (i=thePartonInfo.begin() ; i!=thePartonI << 134 for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++) >> 135 { 145 if (std::abs((*i)->GetQuark()) == std::abs 136 if (std::abs((*i)->GetQuark()) == std::abs(quark)) 146 { 137 { 147 running += (*i)->GetProbability(); 138 running += (*i)->GetProbability(); 148 if (running/sum >= random) << 139 if (running/sum >= random) 149 { 140 { 150 diQuark = (*i)->GetDiQuark(); << 141 diQuark = (*i)->GetDiQuark(); 151 break; << 142 break; 152 } 143 } 153 } 144 } 154 } 145 } 155 } 146 } 156 147 157 148 158 G4SPBaryon:: 149 G4SPBaryon:: 159 G4SPBaryon(G4Proton * aProton) 150 G4SPBaryon(G4Proton * aProton) 160 { 151 { 161 theDefinition = aProton; << 152 theDefinition = aProton; 162 thePartonInfo.push_back(new G4SPPartonInfo(2 << 153 thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.)); // uu_1, d 163 thePartonInfo.push_back(new G4SPPartonInfo(2 << 154 thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./6.)); // ud_1, u 164 thePartonInfo.push_back(new G4SPPartonInfo(2 << 155 thePartonInfo.push_back(new G4SPPartonInfo(2101, 2, 1./2.)); // ud_0, u 165 } 156 } 166 157 167 G4SPBaryon:: 158 G4SPBaryon:: 168 G4SPBaryon(G4AntiProton * aAntiProton) 159 G4SPBaryon(G4AntiProton * aAntiProton) 169 { 160 { 170 theDefinition = aAntiProton; << 161 theDefinition = aAntiProton; 171 thePartonInfo.push_back(new G4SPPartonInfo(- << 162 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -1, 1./3.)); 172 thePartonInfo.push_back(new G4SPPartonInfo(- << 163 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 1./6.)); 173 thePartonInfo.push_back(new G4SPPartonInfo(- << 164 thePartonInfo.push_back(new G4SPPartonInfo(-2101, -2, 1./2.)); 174 } 165 } 175 166 176 << 177 G4SPBaryon:: 167 G4SPBaryon:: 178 G4SPBaryon(G4Neutron * aNeutron) 168 G4SPBaryon(G4Neutron * aNeutron) 179 { 169 { 180 theDefinition = aNeutron; << 170 theDefinition = aNeutron; 181 thePartonInfo.push_back(new G4SPPartonInfo(2 << 171 thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 1./6.)); // ud_1, d 182 thePartonInfo.push_back(new G4SPPartonInfo(2 << 172 thePartonInfo.push_back(new G4SPPartonInfo(2101, 1, 1./2.)); // ud_0, d 183 thePartonInfo.push_back(new G4SPPartonInfo(1 << 173 thePartonInfo.push_back(new G4SPPartonInfo(1103, 2, 1./3.)); // dd_1, u 184 } 174 } 185 175 186 G4SPBaryon:: 176 G4SPBaryon:: 187 G4SPBaryon(G4AntiNeutron * aAntiNeutron) 177 G4SPBaryon(G4AntiNeutron * aAntiNeutron) 188 { 178 { 189 theDefinition = aAntiNeutron; << 179 theDefinition = aAntiNeutron; 190 thePartonInfo.push_back(new G4SPPartonInfo(- << 180 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -1, 1./6.)); 191 thePartonInfo.push_back(new G4SPPartonInfo(- << 181 thePartonInfo.push_back(new G4SPPartonInfo(-2101, -1, 1./2.)); 192 thePartonInfo.push_back(new G4SPPartonInfo(- << 182 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -2, 1./3.)); 193 } 183 } 194 184 195 << 196 G4SPBaryon:: 185 G4SPBaryon:: 197 G4SPBaryon(G4Lambda * aLambda) 186 G4SPBaryon(G4Lambda * aLambda) 198 { 187 { 199 theDefinition = aLambda; << 188 theDefinition = aLambda; 200 thePartonInfo.push_back(new G4SPPartonInfo(2 << 189 thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); // ud_1, s 201 thePartonInfo.push_back(new G4SPPartonInfo(3 << 190 thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./4.)); // su_1, d 202 thePartonInfo.push_back(new G4SPPartonInfo(3 << 191 thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./12.)); // su_0, d 203 thePartonInfo.push_back(new G4SPPartonInfo(3 << 192 thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./4.)); // sd_1, u 204 thePartonInfo.push_back(new G4SPPartonInfo(3 << 193 thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./12.)); // sd_0, u 205 } 194 } 206 195 207 G4SPBaryon:: 196 G4SPBaryon:: 208 G4SPBaryon(G4AntiLambda * aAntiLambda) 197 G4SPBaryon(G4AntiLambda * aAntiLambda) 209 { 198 { 210 theDefinition = aAntiLambda; << 199 theDefinition = aAntiLambda; 211 thePartonInfo.push_back(new G4SPPartonInfo(- << 200 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.)); 212 thePartonInfo.push_back(new G4SPPartonInfo(- << 201 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./4.)); 213 thePartonInfo.push_back(new G4SPPartonInfo(- << 202 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -1, 1./12.)); 214 thePartonInfo.push_back(new G4SPPartonInfo(- << 203 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./4.)); 215 thePartonInfo.push_back(new G4SPPartonInfo(- << 204 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -2, 1./12.)); 216 } 205 } 217 206 218 << 219 G4SPBaryon:: 207 G4SPBaryon:: 220 G4SPBaryon(G4SigmaPlus * aSigmaPlus) 208 G4SPBaryon(G4SigmaPlus * aSigmaPlus) 221 { 209 { 222 theDefinition = aSigmaPlus; << 210 theDefinition = aSigmaPlus; 223 thePartonInfo.push_back(new G4SPPartonInfo(2 << 211 thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.)); 224 thePartonInfo.push_back(new G4SPPartonInfo(3 << 212 thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 1./6.)); 225 thePartonInfo.push_back(new G4SPPartonInfo(3 << 213 thePartonInfo.push_back(new G4SPPartonInfo(3201, 2, 1./2.)); 226 } 214 } 227 215 228 G4SPBaryon:: 216 G4SPBaryon:: 229 G4SPBaryon(G4AntiSigmaPlus * aAntiSigmaPlus) 217 G4SPBaryon(G4AntiSigmaPlus * aAntiSigmaPlus) 230 { 218 { 231 theDefinition = aAntiSigmaPlus; << 219 theDefinition = aAntiSigmaPlus; 232 thePartonInfo.push_back(new G4SPPartonInfo(- << 220 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -3, 1./3.)); 233 thePartonInfo.push_back(new G4SPPartonInfo(- << 221 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -2, 1./6.)); 234 thePartonInfo.push_back(new G4SPPartonInfo(- << 222 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -2, 1./2.)); 235 } 223 } 236 224 237 << 238 G4SPBaryon:: 225 G4SPBaryon:: 239 G4SPBaryon(G4SigmaZero * aSigmaZero) 226 G4SPBaryon(G4SigmaZero * aSigmaZero) 240 { 227 { 241 theDefinition = aSigmaZero; << 228 theDefinition = aSigmaZero; 242 thePartonInfo.push_back(new G4SPPartonInfo(2 << 229 thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); 243 thePartonInfo.push_back(new G4SPPartonInfo(3 << 230 thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./12.)); 244 thePartonInfo.push_back(new G4SPPartonInfo(3 << 231 thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./4.)); 245 thePartonInfo.push_back(new G4SPPartonInfo(3 << 232 thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./12.)); 246 thePartonInfo.push_back(new G4SPPartonInfo(3 << 233 thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./4.)); 247 } 234 } 248 235 249 G4SPBaryon:: 236 G4SPBaryon:: 250 G4SPBaryon(G4AntiSigmaZero * aAntiSigmaZero) 237 G4SPBaryon(G4AntiSigmaZero * aAntiSigmaZero) 251 { 238 { 252 theDefinition = aAntiSigmaZero; << 239 theDefinition = aAntiSigmaZero; 253 thePartonInfo.push_back(new G4SPPartonInfo(- << 240 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.)); 254 thePartonInfo.push_back(new G4SPPartonInfo(- << 241 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./12.)); 255 thePartonInfo.push_back(new G4SPPartonInfo(- << 242 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -1, 1./4.)); 256 thePartonInfo.push_back(new G4SPPartonInfo(- << 243 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./12.)); 257 thePartonInfo.push_back(new G4SPPartonInfo(- << 244 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -2, 1./4.)); 258 } 245 } 259 246 260 << 261 G4SPBaryon:: 247 G4SPBaryon:: 262 G4SPBaryon(G4SigmaMinus * aSigmaMinus) 248 G4SPBaryon(G4SigmaMinus * aSigmaMinus) 263 { 249 { 264 theDefinition = aSigmaMinus; << 250 theDefinition = aSigmaMinus; 265 thePartonInfo.push_back(new G4SPPartonInfo(1 << 251 thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.)); 266 thePartonInfo.push_back(new G4SPPartonInfo(3 << 252 thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 1./6.)); 267 thePartonInfo.push_back(new G4SPPartonInfo(3 << 253 thePartonInfo.push_back(new G4SPPartonInfo(3101, 1, 1./2.)); 268 } 254 } 269 255 270 G4SPBaryon:: 256 G4SPBaryon:: 271 G4SPBaryon(G4AntiSigmaMinus * aAntiSigmaMinus) 257 G4SPBaryon(G4AntiSigmaMinus * aAntiSigmaMinus) 272 { 258 { 273 theDefinition = aAntiSigmaMinus; << 259 theDefinition = aAntiSigmaMinus; 274 thePartonInfo.push_back(new G4SPPartonInfo(- << 260 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -3, 1./3.)); 275 thePartonInfo.push_back(new G4SPPartonInfo(- << 261 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -1, 1./6.)); 276 thePartonInfo.push_back(new G4SPPartonInfo(- << 262 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -1, 1./2.)); 277 } 263 } 278 264 279 << 280 G4SPBaryon:: 265 G4SPBaryon:: 281 G4SPBaryon(G4XiZero * aXiZero) << 266 G4SPBaryon(G4XiMinus * aXiMinus) 282 { 267 { 283 theDefinition = aXiZero; << 268 theDefinition = aXiMinus; 284 thePartonInfo.push_back(new G4SPPartonInfo(3 << 269 thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 1./6.)); 285 thePartonInfo.push_back(new G4SPPartonInfo(3 << 270 thePartonInfo.push_back(new G4SPPartonInfo(3101, 3, 1./2.)); 286 thePartonInfo.push_back(new G4SPPartonInfo(3 << 271 thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.)); 287 } 272 } 288 273 289 G4SPBaryon:: 274 G4SPBaryon:: 290 G4SPBaryon(G4AntiXiZero * aAntiXiZero) << 275 G4SPBaryon(G4AntiXiMinus * aAntiXiMinus) 291 { 276 { 292 theDefinition = aAntiXiZero; << 277 theDefinition = aAntiXiMinus; 293 thePartonInfo.push_back(new G4SPPartonInfo(- << 278 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 1./6.)); 294 thePartonInfo.push_back(new G4SPPartonInfo(- << 279 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -3, 1./2.)); 295 thePartonInfo.push_back(new G4SPPartonInfo(- << 280 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.)); 296 } 281 } 297 282 298 << 299 G4SPBaryon:: 283 G4SPBaryon:: 300 G4SPBaryon(G4XiMinus * aXiMinus) << 284 G4SPBaryon(G4XiZero * aXiZero) 301 { 285 { 302 theDefinition = aXiMinus; << 286 theDefinition = aXiZero; 303 thePartonInfo.push_back(new G4SPPartonInfo(3 << 287 thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./6.)); 304 thePartonInfo.push_back(new G4SPPartonInfo(3 << 288 thePartonInfo.push_back(new G4SPPartonInfo(3201, 3, 1./2.)); 305 thePartonInfo.push_back(new G4SPPartonInfo(3 << 289 thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 1./3.)); 306 } 290 } 307 291 308 G4SPBaryon:: 292 G4SPBaryon:: 309 G4SPBaryon(G4AntiXiMinus * aAntiXiMinus) << 293 G4SPBaryon(G4AntiXiZero * aAntiXiZero) 310 { 294 { 311 theDefinition = aAntiXiMinus; << 295 theDefinition = aAntiXiZero; 312 thePartonInfo.push_back(new G4SPPartonInfo(- << 296 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -3, 1./6.)); 313 thePartonInfo.push_back(new G4SPPartonInfo(- << 297 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -3, 1./2.)); 314 thePartonInfo.push_back(new G4SPPartonInfo(- << 298 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -2, 1./3.)); 315 } 299 } 316 300 317 << 318 G4SPBaryon:: 301 G4SPBaryon:: 319 G4SPBaryon(G4OmegaMinus * anOmegaMinus) 302 G4SPBaryon(G4OmegaMinus * anOmegaMinus) 320 { 303 { 321 theDefinition = anOmegaMinus; << 304 theDefinition = anOmegaMinus; 322 thePartonInfo.push_back(new G4SPPartonInfo(3 << 305 thePartonInfo.push_back(new G4SPPartonInfo(3303, 3, 1.)); 323 } 306 } 324 307 >> 308 325 G4SPBaryon:: 309 G4SPBaryon:: 326 G4SPBaryon(G4AntiOmegaMinus * anAntiOmegaMinus 310 G4SPBaryon(G4AntiOmegaMinus * anAntiOmegaMinus) 327 { 311 { 328 theDefinition = anAntiOmegaMinus; << 312 theDefinition = anAntiOmegaMinus; 329 thePartonInfo.push_back(new G4SPPartonInfo(- << 313 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -3, 1.)); 330 } 314 } 331 315 332 << 333 // non static particles 316 // non static particles 334 G4SPBaryon:: 317 G4SPBaryon:: 335 G4SPBaryon(G4ParticleDefinition * aDefinition) 318 G4SPBaryon(G4ParticleDefinition * aDefinition) 336 { 319 { 337 theDefinition = aDefinition; 320 theDefinition = aDefinition; 338 if (theDefinition == G4ParticleTable::GetPar << 321 if(theDefinition == >> 322 G4ParticleTable::GetParticleTable()->FindParticle(2224))// D++ 339 { 323 { 340 thePartonInfo.push_back(new G4SPPartonInfo << 324 thePartonInfo.push_back(new G4SPPartonInfo(2203, 2, 1.)); 341 } 325 } 342 else if (theDefinition == G4ParticleTable::G << 326 else if(theDefinition == >> 327 G4ParticleTable::GetParticleTable()->FindParticle(-2224))// anti D++ 343 { 328 { 344 thePartonInfo.push_back(new G4SPPartonInfo 329 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -2, 1.)); 345 } 330 } 346 else if (theDefinition == G4ParticleTable::G << 331 else if(theDefinition == >> 332 G4ParticleTable::GetParticleTable()->FindParticle(2214))// D+ 347 { 333 { 348 thePartonInfo.push_back(new G4SPPartonInfo << 334 thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.)); 349 thePartonInfo.push_back(new G4SPPartonInfo << 335 thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 2./3.)); 350 } 336 } 351 else if (theDefinition == G4ParticleTable::G << 337 else if(theDefinition == >> 338 G4ParticleTable::GetParticleTable()->FindParticle(-2214))// anti D+ 352 { 339 { 353 thePartonInfo.push_back(new G4SPPartonInfo 340 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -1, 1./3.)); 354 thePartonInfo.push_back(new G4SPPartonInfo 341 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 2./3.)); 355 } 342 } 356 else if (theDefinition == G4ParticleTable::G << 343 else if(theDefinition == >> 344 G4ParticleTable::GetParticleTable()->FindParticle(2114))// D0 357 { 345 { 358 thePartonInfo.push_back(new G4SPPartonInfo << 346 thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 2./3.)); 359 thePartonInfo.push_back(new G4SPPartonInfo << 347 thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./3.)); 360 } 348 } 361 else if (theDefinition == G4ParticleTable::G << 349 else if(theDefinition == >> 350 G4ParticleTable::GetParticleTable()->FindParticle(-2114))// anti D0 362 { 351 { 363 thePartonInfo.push_back(new G4SPPartonInfo 352 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -1, 2./3.)); 364 thePartonInfo.push_back(new G4SPPartonInfo 353 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 1./3.)); 365 } 354 } 366 else if (theDefinition == G4ParticleTable::G << 355 else if(theDefinition == >> 356 G4ParticleTable::GetParticleTable()->FindParticle(1114))// D- 367 { 357 { 368 thePartonInfo.push_back(new G4SPPartonInfo << 358 thePartonInfo.push_back(new G4SPPartonInfo(1103, 1, 1.)); 369 } 359 } 370 else if (theDefinition == G4ParticleTable::G << 360 else if(theDefinition == >> 361 G4ParticleTable::GetParticleTable()->FindParticle(-1114))// anti D- 371 { 362 { 372 thePartonInfo.push_back(new G4SPPartonInfo 363 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -1, 1.)); 373 } << 364 } 374 } << 365 else if(theDefinition == 375 << 366 G4ParticleTable::GetParticleTable()->FindParticle(3224))// S*+ 376 << 367 { 377 G4SPBaryon::~G4SPBaryon() << 368 thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.)); 378 { << 369 thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 2./3.)); 379 for (unsigned int i=0;i<thePartonInfo.size() << 370 } 380 } << 371 else if(theDefinition == 381 << 372 G4ParticleTable::GetParticleTable()->FindParticle(-3224))// anti S*+ 382 << 373 { 383 // Extension to charmed and bottom baryons and << 374 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -3, 1./3.)); 384 // G4SPPartonInfo(G4int diq, G4int q, G4dou << 375 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -2, 2./3.)); 385 << 376 } 386 G4SPBaryon::G4SPBaryon(G4LambdacPlus * aLambda << 377 else if(theDefinition == 387 // lambda_c+(udc) treated as lambda(uds) wit << 378 G4ParticleTable::GetParticleTable()->FindParticle(3214))// S*0 388 theDefinition = aLambdacPlus; << 379 { 389 thePartonInfo.push_back(new G4SPPartonInfo(2 << 380 thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); 390 thePartonInfo.push_back(new G4SPPartonInfo(4 << 381 thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./3.)); 391 thePartonInfo.push_back(new G4SPPartonInfo(4 << 382 thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./3.)); 392 thePartonInfo.push_back(new G4SPPartonInfo(4 << 383 } 393 thePartonInfo.push_back(new G4SPPartonInfo(4 << 384 else if(theDefinition == 394 } << 385 G4ParticleTable::GetParticleTable()->FindParticle(-3214))// anti S*0 395 << 386 { 396 G4SPBaryon::G4SPBaryon(G4AntiLambdacPlus * aAn << 387 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.)); 397 theDefinition = aAntiLambdacPlus; << 388 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./3.)); 398 thePartonInfo.push_back(new G4SPPartonInfo(- << 389 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./3.)); 399 thePartonInfo.push_back(new G4SPPartonInfo(- << 390 } 400 thePartonInfo.push_back(new G4SPPartonInfo(- << 391 else if(theDefinition == 401 thePartonInfo.push_back(new G4SPPartonInfo(- << 392 G4ParticleTable::GetParticleTable()->FindParticle(3114))// S*- 402 thePartonInfo.push_back(new G4SPPartonInfo(- << 393 { 403 } << 394 thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.)); 404 << 395 thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 2./3.)); 405 << 396 } 406 G4SPBaryon::G4SPBaryon(G4SigmacPlusPlus * aSig << 397 else if(theDefinition == 407 // sigma_c++(uuc) treated as sigma+(uus) wit << 398 G4ParticleTable::GetParticleTable()->FindParticle(-3224))// anti S*- 408 theDefinition = aSigmacPlusPlus; << 399 { 409 thePartonInfo.push_back(new G4SPPartonInfo(2 << 400 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -3, 1./3.)); 410 thePartonInfo.push_back(new G4SPPartonInfo(4 << 401 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -1, 2./3.)); 411 thePartonInfo.push_back(new G4SPPartonInfo(4 << 402 } 412 } << 403 else if(theDefinition == 413 << 404 G4ParticleTable::GetParticleTable()->FindParticle(3324))// Xi*0 414 G4SPBaryon::G4SPBaryon(G4AntiSigmacPlusPlus * << 405 { 415 theDefinition = aAntiSigmacPlusPlus; << 406 thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./3.)); 416 thePartonInfo.push_back(new G4SPPartonInfo(- << 407 thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 2./3.)); 417 thePartonInfo.push_back(new G4SPPartonInfo(- << 408 } 418 thePartonInfo.push_back(new G4SPPartonInfo(- << 409 else if(theDefinition == 419 } << 410 G4ParticleTable::GetParticleTable()->FindParticle(-3324))// anti Xi*0 420 << 411 { 421 << 412 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -3, 1./3.)); 422 G4SPBaryon::G4SPBaryon(G4SigmacPlus * aSigmacP << 413 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -2, 2./3.)); 423 // sigma_c+(udc) treated as sigma0(uds) with << 414 } 424 theDefinition = aSigmacPlus; << 415 else if(theDefinition == 425 thePartonInfo.push_back(new G4SPPartonInfo(2 << 416 G4ParticleTable::GetParticleTable()->FindParticle(3314))// Xi*- 426 thePartonInfo.push_back(new G4SPPartonInfo(4 << 417 { 427 thePartonInfo.push_back(new G4SPPartonInfo(4 << 418 thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 2./3.)); 428 thePartonInfo.push_back(new G4SPPartonInfo(4 << 419 thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.)); 429 thePartonInfo.push_back(new G4SPPartonInfo(4 << 420 } 430 } << 421 else if(theDefinition == 431 << 422 G4ParticleTable::GetParticleTable()->FindParticle(-3314))// anti Xi*- 432 G4SPBaryon::G4SPBaryon(G4AntiSigmacPlus * aAnt << 423 { 433 theDefinition = aAntiSigmacPlus; << 424 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 2./3.)); 434 thePartonInfo.push_back(new G4SPPartonInfo(- << 425 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.)); 435 thePartonInfo.push_back(new G4SPPartonInfo(- << 426 } 436 thePartonInfo.push_back(new G4SPPartonInfo(- << 437 thePartonInfo.push_back(new G4SPPartonInfo(- << 438 thePartonInfo.push_back(new G4SPPartonInfo(- << 439 } << 440 << 441 << 442 G4SPBaryon::G4SPBaryon(G4SigmacZero * aSigmacZ << 443 // sigma_c0(ddc) treated as sigma-(dds) repl << 444 theDefinition = aSigmacZero; << 445 thePartonInfo.push_back(new G4SPPartonInfo(1 << 446 thePartonInfo.push_back(new G4SPPartonInfo(4 << 447 thePartonInfo.push_back(new G4SPPartonInfo(4 << 448 } << 449 << 450 G4SPBaryon::G4SPBaryon(G4AntiSigmacZero * aAnt << 451 theDefinition = aAntiSigmacZero; << 452 thePartonInfo.push_back(new G4SPPartonInfo(- << 453 thePartonInfo.push_back(new G4SPPartonInfo(- << 454 thePartonInfo.push_back(new G4SPPartonInfo(- << 455 } << 456 << 457 << 458 G4SPBaryon::G4SPBaryon(G4XicPlus * aXicPlus) { << 459 // xi_c+(usc) treated as xi0(uss) replacing << 460 theDefinition = aXicPlus; << 461 thePartonInfo.push_back(new G4SPPartonInfo(3 << 462 thePartonInfo.push_back(new G4SPPartonInfo(3 << 463 thePartonInfo.push_back(new G4SPPartonInfo(4 << 464 } << 465 << 466 G4SPBaryon::G4SPBaryon(G4AntiXicPlus * aAntiXi << 467 theDefinition = aAntiXicPlus; << 468 thePartonInfo.push_back(new G4SPPartonInfo(- << 469 thePartonInfo.push_back(new G4SPPartonInfo(- << 470 thePartonInfo.push_back(new G4SPPartonInfo(- << 471 } << 472 << 473 << 474 G4SPBaryon::G4SPBaryon(G4XicZero * aXicZero) { << 475 // xi_c0(dsc) treated as xi-(dss) replacing << 476 theDefinition = aXicZero; << 477 thePartonInfo.push_back(new G4SPPartonInfo(3 << 478 thePartonInfo.push_back(new G4SPPartonInfo(3 << 479 thePartonInfo.push_back(new G4SPPartonInfo(4 << 480 } << 481 << 482 G4SPBaryon::G4SPBaryon(G4AntiXicZero * aAntiXi << 483 theDefinition = aAntiXicZero; << 484 thePartonInfo.push_back(new G4SPPartonInfo(- << 485 thePartonInfo.push_back(new G4SPPartonInfo(- << 486 thePartonInfo.push_back(new G4SPPartonInfo(- << 487 } << 488 << 489 << 490 G4SPBaryon::G4SPBaryon(G4OmegacZero * aOmegacZ << 491 // omega_c0(ssc) treated as omega-(sss) with << 492 theDefinition = aOmegacZero; << 493 thePartonInfo.push_back(new G4SPPartonInfo(3 << 494 } << 495 << 496 G4SPBaryon::G4SPBaryon(G4AntiOmegacZero * aAnt << 497 theDefinition = aAntiOmegacZero; << 498 thePartonInfo.push_back(new G4SPPartonInfo(- << 499 } << 500 << 501 << 502 G4SPBaryon::G4SPBaryon(G4Lambdab * aLambdab) { << 503 // lambda_b(udb) treated as lambda-(uds) rep << 504 theDefinition = aLambdab; << 505 thePartonInfo.push_back(new G4SPPartonInfo(2 << 506 thePartonInfo.push_back(new G4SPPartonInfo(5 << 507 thePartonInfo.push_back(new G4SPPartonInfo(5 << 508 thePartonInfo.push_back(new G4SPPartonInfo(5 << 509 thePartonInfo.push_back(new G4SPPartonInfo(5 << 510 } << 511 << 512 G4SPBaryon::G4SPBaryon(G4AntiLambdab * aAntiLa << 513 theDefinition = aAntiLambdab; << 514 thePartonInfo.push_back(new G4SPPartonInfo(- << 515 thePartonInfo.push_back(new G4SPPartonInfo(- << 516 thePartonInfo.push_back(new G4SPPartonInfo(- << 517 thePartonInfo.push_back(new G4SPPartonInfo(- << 518 thePartonInfo.push_back(new G4SPPartonInfo(- << 519 } << 520 << 521 << 522 G4SPBaryon::G4SPBaryon(G4SigmabPlus * aSigmabP << 523 // sigma_b+(uub) treated as sigma+(uus) repl << 524 theDefinition = aSigmabPlus; << 525 thePartonInfo.push_back(new G4SPPartonInfo(2 << 526 thePartonInfo.push_back(new G4SPPartonInfo(5 << 527 thePartonInfo.push_back(new G4SPPartonInfo(5 << 528 } << 529 << 530 G4SPBaryon::G4SPBaryon(G4AntiSigmabPlus * aAnt << 531 theDefinition = aAntiSigmabPlus; << 532 thePartonInfo.push_back(new G4SPPartonInfo(- << 533 thePartonInfo.push_back(new G4SPPartonInfo(- << 534 thePartonInfo.push_back(new G4SPPartonInfo(- << 535 } << 536 << 537 << 538 G4SPBaryon::G4SPBaryon(G4SigmabZero * aSigmabZ << 539 // sigma_b0(udb) treated as sigma0(uds) repl << 540 theDefinition = aSigmabZero; << 541 thePartonInfo.push_back(new G4SPPartonInfo(2 << 542 thePartonInfo.push_back(new G4SPPartonInfo(5 << 543 thePartonInfo.push_back(new G4SPPartonInfo(5 << 544 thePartonInfo.push_back(new G4SPPartonInfo(5 << 545 thePartonInfo.push_back(new G4SPPartonInfo(5 << 546 } << 547 << 548 G4SPBaryon::G4SPBaryon(G4AntiSigmabZero * aAnt << 549 theDefinition = aAntiSigmabZero; << 550 thePartonInfo.push_back(new G4SPPartonInfo(- << 551 thePartonInfo.push_back(new G4SPPartonInfo(- << 552 thePartonInfo.push_back(new G4SPPartonInfo(- << 553 thePartonInfo.push_back(new G4SPPartonInfo(- << 554 thePartonInfo.push_back(new G4SPPartonInfo(- << 555 } << 556 << 557 << 558 G4SPBaryon::G4SPBaryon(G4SigmabMinus * aSigmab << 559 // sigma_b-(ddb) treated as sigma-(dds) repl << 560 theDefinition = aSigmabMinus; << 561 thePartonInfo.push_back(new G4SPPartonInfo(1 << 562 thePartonInfo.push_back(new G4SPPartonInfo(5 << 563 thePartonInfo.push_back(new G4SPPartonInfo(5 << 564 } << 565 << 566 G4SPBaryon::G4SPBaryon(G4AntiSigmabMinus * aAn << 567 theDefinition = aAntiSigmabMinus; << 568 thePartonInfo.push_back(new G4SPPartonInfo(- << 569 thePartonInfo.push_back(new G4SPPartonInfo(- << 570 thePartonInfo.push_back(new G4SPPartonInfo(- << 571 } << 572 << 573 << 574 G4SPBaryon::G4SPBaryon(G4XibZero * aXibZero) { << 575 // xi_b0(usb) treated as xi0(uss) replacing << 576 theDefinition = aXibZero; << 577 thePartonInfo.push_back(new G4SPPartonInfo(3 << 578 thePartonInfo.push_back(new G4SPPartonInfo(3 << 579 thePartonInfo.push_back(new G4SPPartonInfo(5 << 580 } << 581 << 582 G4SPBaryon::G4SPBaryon(G4AntiXibZero * aAntiXi << 583 theDefinition = aAntiXibZero; << 584 thePartonInfo.push_back(new G4SPPartonInfo(- << 585 thePartonInfo.push_back(new G4SPPartonInfo(- << 586 thePartonInfo.push_back(new G4SPPartonInfo(- << 587 } << 588 << 589 << 590 G4SPBaryon::G4SPBaryon(G4XibMinus * aXibMinus) << 591 // xi_b-(dsb) treated as xi-(dss) replacing << 592 theDefinition = aXibMinus; << 593 thePartonInfo.push_back(new G4SPPartonInfo(3 << 594 thePartonInfo.push_back(new G4SPPartonInfo(3 << 595 thePartonInfo.push_back(new G4SPPartonInfo(5 << 596 } << 597 << 598 G4SPBaryon::G4SPBaryon(G4AntiXibMinus * aAntiX << 599 theDefinition = aAntiXibMinus; << 600 thePartonInfo.push_back(new G4SPPartonInfo(- << 601 thePartonInfo.push_back(new G4SPPartonInfo(- << 602 thePartonInfo.push_back(new G4SPPartonInfo(- << 603 } << 604 << 605 << 606 G4SPBaryon::G4SPBaryon(G4OmegabMinus * aOmegab << 607 // omega_b-(ssb) treated as omega-(sss) repl << 608 theDefinition = aOmegabMinus; << 609 thePartonInfo.push_back(new G4SPPartonInfo(3 << 610 } << 611 << 612 G4SPBaryon::G4SPBaryon(G4AntiOmegabMinus * aAn << 613 theDefinition = aAntiOmegabMinus; << 614 thePartonInfo.push_back(new G4SPPartonInfo(- << 615 } 427 } 616 428