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); 37 G4int Quark(0); 38 typedef std::vector<G4SPPartonInfo *>::const 38 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 39 iter i; 39 iter i; 40 for (i = thePartonInfo.begin(); i!=theParton << 40 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 41 { 41 { 42 if (std::abs((*i)->GetDiQuark()) == std::a 42 if (std::abs((*i)->GetDiQuark()) == std::abs(diQuark)) 43 { 43 { 44 running += (*i)->GetProbability(); 44 running += (*i)->GetProbability(); 45 if (running/sum >= random) 45 if (running/sum >= random) 46 { 46 { 47 Quark = (*i)->GetQuark(); 47 Quark = (*i)->GetQuark(); 48 break; 48 break; 49 } 49 } 50 } 50 } 51 } 51 } 52 return Quark; 52 return Quark; 53 } 53 } 54 54 55 << 56 G4double G4SPBaryon::GetProbability(G4int diQu 55 G4double G4SPBaryon::GetProbability(G4int diQuark) const 57 { 56 { 58 G4double sum = 0; 57 G4double sum = 0; 59 typedef std::vector<G4SPPartonInfo *>::const 58 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 60 iter i; 59 iter i; 61 for (i = thePartonInfo.begin(); i!=theParton << 60 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 62 { 61 { 63 if (std::abs((*i)->GetDiQuark()) == std::a 62 if (std::abs((*i)->GetDiQuark()) == std::abs(diQuark)) 64 { 63 { 65 sum += (*i)->GetProbability(); 64 sum += (*i)->GetProbability(); 66 } 65 } 67 } 66 } 68 return sum; 67 return sum; 69 } 68 } 70 69 71 << 70 G4int G4SPBaryon::MatchDiQuarkAndGetQuark(const G4SPBaryon & aBaryon, G4int & aDiQuark) const 72 G4int G4SPBaryon:: << 73 MatchDiQuarkAndGetQuark(const G4SPBaryon & aBa << 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) 89 { 86 { 90 result = (*i)->GetQuark(); // (diquark << 87 result = (*i)->GetQuark(); // (diquark annihilated) 91 aDiQuark = (*i)->GetDiQuark(); 88 aDiQuark = (*i)->GetDiQuark(); 92 break; 89 break; 93 } 90 } 94 } 91 } 95 return result; 92 return result; 96 } 93 } 97 94 98 << 95 void G4SPBaryon::SampleQuarkAndDiquark(G4int & quark, G4int & diQuark) const 99 void G4SPBaryon:: << 100 SampleQuarkAndDiquark(G4int & quark, G4int & d << 101 { 96 { 102 typedef std::vector<G4SPPartonInfo *>::const 97 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 103 << 104 G4double random = G4UniformRand(); 98 G4double random = G4UniformRand(); 105 G4double sum = 0; 99 G4double sum = 0; 106 iter i; 100 iter i; 107 << 101 for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++) 108 for (i=thePartonInfo.begin() ; i!=thePartonI << 109 { 102 { 110 sum += (*i)->GetProbability(); 103 sum += (*i)->GetProbability(); 111 if (sum > random) 104 if (sum > random) 112 { 105 { 113 if (theDefinition->GetPDGEncoding() < 0) 106 if (theDefinition->GetPDGEncoding() < 0) 114 { 107 { 115 quark = (*i)->GetDiQuark(); 108 quark = (*i)->GetDiQuark(); 116 diQuark = (*i)->GetQuark(); << 109 diQuark = (*i)->GetQuark(); 117 } << 110 } else { 118 else << 111 quark = (*i)->GetQuark(); 119 { << 112 diQuark = (*i)->GetDiQuark(); 120 quark = (*i)->GetQuark(); << 121 diQuark = (*i)->GetDiQuark(); << 122 } 113 } 123 break; 114 break; 124 } 115 } 125 } 116 } 126 } 117 } 127 118 128 << 119 void G4SPBaryon::FindDiquark(G4int quark, G4int & diQuark) const 129 void G4SPBaryon:: << 130 FindDiquark(G4int quark, G4int & diQuark) cons << 131 { 120 { 132 typedef std::vector<G4SPPartonInfo *>::const 121 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 133 G4double sum = 0; 122 G4double sum = 0; 134 iter i; 123 iter i; 135 for (i=thePartonInfo.begin() ; i!=thePartonI << 124 for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++) 136 { 125 { 137 if (std::abs((*i)->GetQuark()) == std::abs 126 if (std::abs((*i)->GetQuark()) == std::abs(quark)) 138 { 127 { 139 sum += (*i)->GetProbability(); 128 sum += (*i)->GetProbability(); 140 } 129 } 141 } 130 } 142 G4double random = G4UniformRand(); 131 G4double random = G4UniformRand(); 143 G4double running = 0; 132 G4double running = 0; 144 for (i=thePartonInfo.begin() ; i!=thePartonI << 133 for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++) >> 134 { 145 if (std::abs((*i)->GetQuark()) == std::abs 135 if (std::abs((*i)->GetQuark()) == std::abs(quark)) 146 { 136 { 147 running += (*i)->GetProbability(); 137 running += (*i)->GetProbability(); 148 if (running/sum >= random) 138 if (running/sum >= random) 149 { 139 { 150 diQuark = (*i)->GetDiQuark(); << 140 diQuark = (*i)->GetDiQuark(); 151 break; << 141 break; 152 } 142 } 153 } 143 } 154 } 144 } 155 } 145 } 156 146 157 147 158 G4SPBaryon:: << 148 G4SPBaryon::G4SPBaryon(G4Proton * aProton) 159 G4SPBaryon(G4Proton * aProton) << 160 { 149 { 161 theDefinition = aProton; 150 theDefinition = aProton; 162 thePartonInfo.push_back(new G4SPPartonInfo(2 << 151 thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.)); // uu_1, d 163 thePartonInfo.push_back(new G4SPPartonInfo(2 << 152 thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./6.)); // ud_1, u 164 thePartonInfo.push_back(new G4SPPartonInfo(2 << 153 thePartonInfo.push_back(new G4SPPartonInfo(2101, 2, 1./2.)); // ud_0, u 165 } 154 } 166 155 167 G4SPBaryon:: << 156 G4SPBaryon::G4SPBaryon(G4AntiProton * aAntiProton) 168 G4SPBaryon(G4AntiProton * aAntiProton) << 169 { 157 { 170 theDefinition = aAntiProton; 158 theDefinition = aAntiProton; 171 thePartonInfo.push_back(new G4SPPartonInfo(- 159 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -1, 1./3.)); 172 thePartonInfo.push_back(new G4SPPartonInfo(- 160 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 1./6.)); 173 thePartonInfo.push_back(new G4SPPartonInfo(- 161 thePartonInfo.push_back(new G4SPPartonInfo(-2101, -2, 1./2.)); 174 } 162 } 175 163 176 << 164 G4SPBaryon::G4SPBaryon(G4Neutron * aNeutron) 177 G4SPBaryon:: << 178 G4SPBaryon(G4Neutron * aNeutron) << 179 { 165 { 180 theDefinition = aNeutron; 166 theDefinition = aNeutron; 181 thePartonInfo.push_back(new G4SPPartonInfo(2 << 167 thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 1./6.)); // ud_1, d 182 thePartonInfo.push_back(new G4SPPartonInfo(2 << 168 thePartonInfo.push_back(new G4SPPartonInfo(2101, 1, 1./2.)); // ud_0, d 183 thePartonInfo.push_back(new G4SPPartonInfo(1 << 169 thePartonInfo.push_back(new G4SPPartonInfo(1103, 2, 1./3.)); // dd_1, u 184 } 170 } 185 171 186 G4SPBaryon:: << 172 G4SPBaryon::G4SPBaryon(G4AntiNeutron * aAntiNeutron) 187 G4SPBaryon(G4AntiNeutron * aAntiNeutron) << 188 { 173 { 189 theDefinition = aAntiNeutron; 174 theDefinition = aAntiNeutron; 190 thePartonInfo.push_back(new G4SPPartonInfo(- 175 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -1, 1./6.)); 191 thePartonInfo.push_back(new G4SPPartonInfo(- 176 thePartonInfo.push_back(new G4SPPartonInfo(-2101, -1, 1./2.)); 192 thePartonInfo.push_back(new G4SPPartonInfo(- 177 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -2, 1./3.)); 193 } 178 } 194 179 195 << 180 G4SPBaryon::G4SPBaryon(G4Lambda * aLambda) 196 G4SPBaryon:: << 197 G4SPBaryon(G4Lambda * aLambda) << 198 { 181 { 199 theDefinition = aLambda; 182 theDefinition = aLambda; 200 thePartonInfo.push_back(new G4SPPartonInfo(2 183 thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); // ud_1, s 201 thePartonInfo.push_back(new G4SPPartonInfo(3 184 thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./4.)); // su_1, d 202 thePartonInfo.push_back(new G4SPPartonInfo(3 185 thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./12.)); // su_0, d 203 thePartonInfo.push_back(new G4SPPartonInfo(3 186 thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./4.)); // sd_1, u 204 thePartonInfo.push_back(new G4SPPartonInfo(3 187 thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./12.)); // sd_0, u 205 } 188 } 206 189 207 G4SPBaryon:: << 190 G4SPBaryon::G4SPBaryon(G4AntiLambda * aAntiLambda) 208 G4SPBaryon(G4AntiLambda * aAntiLambda) << 209 { 191 { 210 theDefinition = aAntiLambda; 192 theDefinition = aAntiLambda; 211 thePartonInfo.push_back(new G4SPPartonInfo(- 193 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.)); 212 thePartonInfo.push_back(new G4SPPartonInfo(- 194 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./4.)); 213 thePartonInfo.push_back(new G4SPPartonInfo(- 195 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -1, 1./12.)); 214 thePartonInfo.push_back(new G4SPPartonInfo(- 196 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./4.)); 215 thePartonInfo.push_back(new G4SPPartonInfo(- 197 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -2, 1./12.)); 216 } 198 } 217 199 218 << 200 G4SPBaryon::G4SPBaryon(G4SigmaPlus * aSigmaPlus) 219 G4SPBaryon:: << 220 G4SPBaryon(G4SigmaPlus * aSigmaPlus) << 221 { 201 { 222 theDefinition = aSigmaPlus; 202 theDefinition = aSigmaPlus; 223 thePartonInfo.push_back(new G4SPPartonInfo(2 << 203 thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.)); 224 thePartonInfo.push_back(new G4SPPartonInfo(3 << 204 thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 1./6.)); 225 thePartonInfo.push_back(new G4SPPartonInfo(3 << 205 thePartonInfo.push_back(new G4SPPartonInfo(3201, 2, 1./2.)); 226 } 206 } 227 207 228 G4SPBaryon:: << 208 G4SPBaryon::G4SPBaryon(G4AntiSigmaPlus * aAntiSigmaPlus) 229 G4SPBaryon(G4AntiSigmaPlus * aAntiSigmaPlus) << 230 { 209 { 231 theDefinition = aAntiSigmaPlus; 210 theDefinition = aAntiSigmaPlus; 232 thePartonInfo.push_back(new G4SPPartonInfo(- 211 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -3, 1./3.)); 233 thePartonInfo.push_back(new G4SPPartonInfo(- 212 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -2, 1./6.)); 234 thePartonInfo.push_back(new G4SPPartonInfo(- 213 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -2, 1./2.)); 235 } 214 } 236 215 237 << 216 G4SPBaryon::G4SPBaryon(G4SigmaZero * aSigmaZero) 238 G4SPBaryon:: << 239 G4SPBaryon(G4SigmaZero * aSigmaZero) << 240 { 217 { 241 theDefinition = aSigmaZero; 218 theDefinition = aSigmaZero; 242 thePartonInfo.push_back(new G4SPPartonInfo(2 << 219 thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); 243 thePartonInfo.push_back(new G4SPPartonInfo(3 << 220 thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./12.)); 244 thePartonInfo.push_back(new G4SPPartonInfo(3 << 221 thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./4.)); 245 thePartonInfo.push_back(new G4SPPartonInfo(3 << 222 thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./12.)); 246 thePartonInfo.push_back(new G4SPPartonInfo(3 << 223 thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./4.)); 247 } 224 } 248 225 249 G4SPBaryon:: << 226 G4SPBaryon::G4SPBaryon(G4AntiSigmaZero * aAntiSigmaZero) 250 G4SPBaryon(G4AntiSigmaZero * aAntiSigmaZero) << 251 { 227 { 252 theDefinition = aAntiSigmaZero; 228 theDefinition = aAntiSigmaZero; 253 thePartonInfo.push_back(new G4SPPartonInfo(- 229 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.)); 254 thePartonInfo.push_back(new G4SPPartonInfo(- 230 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./12.)); 255 thePartonInfo.push_back(new G4SPPartonInfo(- 231 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -1, 1./4.)); 256 thePartonInfo.push_back(new G4SPPartonInfo(- 232 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./12.)); 257 thePartonInfo.push_back(new G4SPPartonInfo(- 233 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -2, 1./4.)); 258 } 234 } 259 235 260 << 236 G4SPBaryon::G4SPBaryon(G4SigmaMinus * aSigmaMinus) 261 G4SPBaryon:: << 262 G4SPBaryon(G4SigmaMinus * aSigmaMinus) << 263 { 237 { 264 theDefinition = aSigmaMinus; 238 theDefinition = aSigmaMinus; 265 thePartonInfo.push_back(new G4SPPartonInfo(1 << 239 thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.)); 266 thePartonInfo.push_back(new G4SPPartonInfo(3 << 240 thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 1./6.)); 267 thePartonInfo.push_back(new G4SPPartonInfo(3 << 241 thePartonInfo.push_back(new G4SPPartonInfo(3101, 1, 1./2.)); 268 } 242 } 269 243 270 G4SPBaryon:: << 244 G4SPBaryon::G4SPBaryon(G4AntiSigmaMinus * aAntiSigmaMinus) 271 G4SPBaryon(G4AntiSigmaMinus * aAntiSigmaMinus) << 272 { 245 { 273 theDefinition = aAntiSigmaMinus; 246 theDefinition = aAntiSigmaMinus; 274 thePartonInfo.push_back(new G4SPPartonInfo(- 247 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -3, 1./3.)); 275 thePartonInfo.push_back(new G4SPPartonInfo(- 248 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -1, 1./6.)); 276 thePartonInfo.push_back(new G4SPPartonInfo(- 249 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -1, 1./2.)); 277 } 250 } 278 251 279 << 252 G4SPBaryon::G4SPBaryon(G4XiMinus * aXiMinus) 280 G4SPBaryon:: << 281 G4SPBaryon(G4XiZero * aXiZero) << 282 { << 283 theDefinition = aXiZero; << 284 thePartonInfo.push_back(new G4SPPartonInfo(3 << 285 thePartonInfo.push_back(new G4SPPartonInfo(3 << 286 thePartonInfo.push_back(new G4SPPartonInfo(3 << 287 } << 288 << 289 G4SPBaryon:: << 290 G4SPBaryon(G4AntiXiZero * aAntiXiZero) << 291 { << 292 theDefinition = aAntiXiZero; << 293 thePartonInfo.push_back(new G4SPPartonInfo(- << 294 thePartonInfo.push_back(new G4SPPartonInfo(- << 295 thePartonInfo.push_back(new G4SPPartonInfo(- << 296 } << 297 << 298 << 299 G4SPBaryon:: << 300 G4SPBaryon(G4XiMinus * aXiMinus) << 301 { 253 { 302 theDefinition = aXiMinus; 254 theDefinition = aXiMinus; 303 thePartonInfo.push_back(new G4SPPartonInfo(3 << 255 thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 1./6.)); 304 thePartonInfo.push_back(new G4SPPartonInfo(3 << 256 thePartonInfo.push_back(new G4SPPartonInfo(3101, 3, 1./2.)); 305 thePartonInfo.push_back(new G4SPPartonInfo(3 << 257 thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.)); 306 } 258 } 307 259 308 G4SPBaryon:: << 260 G4SPBaryon::G4SPBaryon(G4AntiXiMinus * aAntiXiMinus) 309 G4SPBaryon(G4AntiXiMinus * aAntiXiMinus) << 310 { 261 { 311 theDefinition = aAntiXiMinus; 262 theDefinition = aAntiXiMinus; 312 thePartonInfo.push_back(new G4SPPartonInfo(- 263 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 1./6.)); 313 thePartonInfo.push_back(new G4SPPartonInfo(- 264 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -3, 1./2.)); 314 thePartonInfo.push_back(new G4SPPartonInfo(- 265 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.)); 315 } 266 } 316 267 >> 268 G4SPBaryon::G4SPBaryon(G4XiZero * aXiZero) >> 269 { >> 270 theDefinition = aXiZero; >> 271 thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./6.)); >> 272 thePartonInfo.push_back(new G4SPPartonInfo(3201, 3, 1./2.)); >> 273 thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 1./3.)); >> 274 } 317 275 318 G4SPBaryon:: << 276 G4SPBaryon::G4SPBaryon(G4AntiXiZero * aAntiXiZero) 319 G4SPBaryon(G4OmegaMinus * anOmegaMinus) << 277 { >> 278 theDefinition = aAntiXiZero; >> 279 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -3, 1./6.)); >> 280 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -3, 1./2.)); >> 281 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -2, 1./3.)); >> 282 } >> 283 >> 284 G4SPBaryon::G4SPBaryon(G4OmegaMinus * anOmegaMinus) 320 { 285 { 321 theDefinition = anOmegaMinus; 286 theDefinition = anOmegaMinus; 322 thePartonInfo.push_back(new G4SPPartonInfo(3 << 287 thePartonInfo.push_back(new G4SPPartonInfo(3303, 3, 1.)); 323 } 288 } 324 289 325 G4SPBaryon:: << 290 G4SPBaryon::G4SPBaryon(G4AntiOmegaMinus * anAntiOmegaMinus) 326 G4SPBaryon(G4AntiOmegaMinus * anAntiOmegaMinus << 327 { 291 { 328 theDefinition = anAntiOmegaMinus; 292 theDefinition = anAntiOmegaMinus; 329 thePartonInfo.push_back(new G4SPPartonInfo(- 293 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -3, 1.)); 330 } 294 } 331 295 332 << 333 // non static particles 296 // non static particles 334 G4SPBaryon:: << 297 G4SPBaryon::G4SPBaryon(G4ParticleDefinition * aDefinition) 335 G4SPBaryon(G4ParticleDefinition * aDefinition) << 336 { 298 { 337 theDefinition = aDefinition; 299 theDefinition = aDefinition; 338 if (theDefinition == G4ParticleTable::GetPar << 300 if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(2224))// D++ 339 { 301 { 340 thePartonInfo.push_back(new G4SPPartonInfo << 302 thePartonInfo.push_back(new G4SPPartonInfo(2203, 2, 1.)); 341 } << 303 } 342 else if (theDefinition == G4ParticleTable::G << 304 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-2224))// anti D++ 343 { 305 { 344 thePartonInfo.push_back(new G4SPPartonInfo 306 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -2, 1.)); 345 } 307 } 346 else if (theDefinition == G4ParticleTable::G << 308 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(2214))// D+ 347 { 309 { 348 thePartonInfo.push_back(new G4SPPartonInfo << 310 thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.)); 349 thePartonInfo.push_back(new G4SPPartonInfo << 311 thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 2./3.)); 350 } 312 } 351 else if (theDefinition == G4ParticleTable::G << 313 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-2214))// anti D+ 352 { 314 { 353 thePartonInfo.push_back(new G4SPPartonInfo 315 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -1, 1./3.)); 354 thePartonInfo.push_back(new G4SPPartonInfo 316 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 2./3.)); 355 } 317 } 356 else if (theDefinition == G4ParticleTable::G << 318 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(2114))// D0 357 { 319 { 358 thePartonInfo.push_back(new G4SPPartonInfo << 320 thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 2./3.)); 359 thePartonInfo.push_back(new G4SPPartonInfo << 321 thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./3.)); 360 } 322 } 361 else if (theDefinition == G4ParticleTable::G << 323 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-2114))// anti D0 362 { 324 { 363 thePartonInfo.push_back(new G4SPPartonInfo 325 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -1, 2./3.)); 364 thePartonInfo.push_back(new G4SPPartonInfo 326 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 1./3.)); 365 } << 327 } 366 else if (theDefinition == G4ParticleTable::G << 328 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(1114))// D- 367 { 329 { 368 thePartonInfo.push_back(new G4SPPartonInfo << 330 thePartonInfo.push_back(new G4SPPartonInfo(1103, 1, 1.)); 369 } 331 } 370 else if (theDefinition == G4ParticleTable::G << 332 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-1114))// anti D- 371 { 333 { 372 thePartonInfo.push_back(new G4SPPartonInfo 334 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -1, 1.)); 373 } << 335 } >> 336 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(3224))// S*+ >> 337 { >> 338 thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.)); >> 339 thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 2./3.)); >> 340 } >> 341 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-3224))// anti S*+ >> 342 { >> 343 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -3, 1./3.)); >> 344 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -2, 2./3.)); >> 345 } >> 346 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(3214))// S*0 >> 347 { >> 348 thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); >> 349 thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./3.)); >> 350 thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./3.)); >> 351 } >> 352 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-3214))// anti S*0 >> 353 { >> 354 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.)); >> 355 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./3.)); >> 356 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./3.)); >> 357 } >> 358 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(3114))// S*- >> 359 { >> 360 thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.)); >> 361 thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 2./3.)); >> 362 } >> 363 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-3224))// anti S*- >> 364 { >> 365 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -3, 1./3.)); >> 366 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -1, 2./3.)); >> 367 } >> 368 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(3324))// Xi*0 >> 369 { >> 370 thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./3.)); >> 371 thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 2./3.)); >> 372 } >> 373 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-3324))// anti Xi*0 >> 374 { >> 375 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -3, 1./3.)); >> 376 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -2, 2./3.)); >> 377 } >> 378 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(3314))// Xi*- >> 379 { >> 380 thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 2./3.)); >> 381 thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.)); >> 382 } >> 383 else if(theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-3314))// anti Xi*- >> 384 { >> 385 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 2./3.)); >> 386 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.)); >> 387 } 374 } 388 } 375 389 376 << 377 G4SPBaryon::~G4SPBaryon() 390 G4SPBaryon::~G4SPBaryon() 378 { 391 { 379 for (unsigned int i=0;i<thePartonInfo.size() << 392 for(unsigned int i=0;i<thePartonInfo.size(); i++) delete thePartonInfo[i]; 380 } 393 } 381 394 382 << 383 // Extension to charmed and bottom baryons and << 384 // G4SPPartonInfo(G4int diq, G4int q, G4dou << 385 << 386 G4SPBaryon::G4SPBaryon(G4LambdacPlus * aLambda << 387 // lambda_c+(udc) treated as lambda(uds) wit << 388 theDefinition = aLambdacPlus; << 389 thePartonInfo.push_back(new G4SPPartonInfo(2 << 390 thePartonInfo.push_back(new G4SPPartonInfo(4 << 391 thePartonInfo.push_back(new G4SPPartonInfo(4 << 392 thePartonInfo.push_back(new G4SPPartonInfo(4 << 393 thePartonInfo.push_back(new G4SPPartonInfo(4 << 394 } << 395 << 396 G4SPBaryon::G4SPBaryon(G4AntiLambdacPlus * aAn << 397 theDefinition = aAntiLambdacPlus; << 398 thePartonInfo.push_back(new G4SPPartonInfo(- << 399 thePartonInfo.push_back(new G4SPPartonInfo(- << 400 thePartonInfo.push_back(new G4SPPartonInfo(- << 401 thePartonInfo.push_back(new G4SPPartonInfo(- << 402 thePartonInfo.push_back(new G4SPPartonInfo(- << 403 } << 404 << 405 << 406 G4SPBaryon::G4SPBaryon(G4SigmacPlusPlus * aSig << 407 // sigma_c++(uuc) treated as sigma+(uus) wit << 408 theDefinition = aSigmacPlusPlus; << 409 thePartonInfo.push_back(new G4SPPartonInfo(2 << 410 thePartonInfo.push_back(new G4SPPartonInfo(4 << 411 thePartonInfo.push_back(new G4SPPartonInfo(4 << 412 } << 413 << 414 G4SPBaryon::G4SPBaryon(G4AntiSigmacPlusPlus * << 415 theDefinition = aAntiSigmacPlusPlus; << 416 thePartonInfo.push_back(new G4SPPartonInfo(- << 417 thePartonInfo.push_back(new G4SPPartonInfo(- << 418 thePartonInfo.push_back(new G4SPPartonInfo(- << 419 } << 420 << 421 << 422 G4SPBaryon::G4SPBaryon(G4SigmacPlus * aSigmacP << 423 // sigma_c+(udc) treated as sigma0(uds) with << 424 theDefinition = aSigmacPlus; << 425 thePartonInfo.push_back(new G4SPPartonInfo(2 << 426 thePartonInfo.push_back(new G4SPPartonInfo(4 << 427 thePartonInfo.push_back(new G4SPPartonInfo(4 << 428 thePartonInfo.push_back(new G4SPPartonInfo(4 << 429 thePartonInfo.push_back(new G4SPPartonInfo(4 << 430 } << 431 << 432 G4SPBaryon::G4SPBaryon(G4AntiSigmacPlus * aAnt << 433 theDefinition = aAntiSigmacPlus; << 434 thePartonInfo.push_back(new G4SPPartonInfo(- << 435 thePartonInfo.push_back(new G4SPPartonInfo(- << 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 } << 616 395