Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer << 3 // * DISCLAIMER * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th << 5 // * The following disclaimer summarizes all the specific disclaimers * 6 // * the Geant4 Collaboration. It is provided << 6 // * of contributors to this software. The specific disclaimers,which * 7 // * conditions of the Geant4 Software License << 7 // * govern, are listed with their locations in: * 8 // * LICENSE and available at http://cern.ch/ << 8 // * http://cern.ch/geant4/license * 9 // * include a list of copyright holders. << 10 // * 9 // * * 11 // * Neither the authors of this software syst 10 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 11 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 12 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 13 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file << 14 // * use. * 16 // * for the full disclaimer and the limitatio << 17 // * 15 // * * 18 // * This code implementation is the result << 16 // * This code implementation is the intellectual property of the * 19 // * technical work of the GEANT4 collaboratio << 17 // * GEANT4 collaboration. * 20 // * By using, copying, modifying or distri << 18 // * By copying, distributing or modifying the Program (or any work * 21 // * any work based on the software) you ag << 19 // * based on the Program) you indicate your acceptance of this * 22 // * use in resulting scientific publicati << 20 // * statement, and all its terms. * 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* 21 // ******************************************************************** 25 // 22 // 26 #include "G4SPBaryon.hh" 23 #include "G4SPBaryon.hh" 27 #include "Randomize.hh" 24 #include "Randomize.hh" 28 #include "G4ParticleTable.hh" 25 #include "G4ParticleTable.hh" 29 26 30 // correcting numbers, HPW Dec 1999 27 // correcting numbers, HPW Dec 1999 31 28 32 G4int G4SPBaryon::FindQuark(G4int diQuark) con 29 G4int G4SPBaryon::FindQuark(G4int diQuark) const 33 { 30 { 34 G4double sum = GetProbability(diQuark); 31 G4double sum = GetProbability(diQuark); 35 G4double random = G4UniformRand(); 32 G4double random = G4UniformRand(); 36 G4double running = 0; 33 G4double running = 0; 37 G4int Quark(0); << 38 typedef std::vector<G4SPPartonInfo *>::const 34 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 39 iter i; 35 iter i; 40 for (i = thePartonInfo.begin(); i!=theParton << 36 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 41 { 37 { 42 if (std::abs((*i)->GetDiQuark()) == std::a 38 if (std::abs((*i)->GetDiQuark()) == std::abs(diQuark)) 43 { 39 { 44 running += (*i)->GetProbability(); 40 running += (*i)->GetProbability(); 45 if (running/sum >= random) << 41 if (running/sum >= random) 46 { 42 { 47 Quark = (*i)->GetQuark(); << 43 diQuark = (*i)->GetDiQuark(); 48 break; << 44 break; 49 } 45 } 50 } 46 } 51 } 47 } 52 return Quark; << 48 return (*i)->GetQuark(); 53 } 49 } 54 << 50 55 << 56 G4double G4SPBaryon::GetProbability(G4int diQu 51 G4double G4SPBaryon::GetProbability(G4int diQuark) const 57 { 52 { 58 G4double sum = 0; 53 G4double sum = 0; 59 typedef std::vector<G4SPPartonInfo *>::const 54 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 60 iter i; 55 iter i; 61 for (i = thePartonInfo.begin(); i!=theParton << 56 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 62 { 57 { 63 if (std::abs((*i)->GetDiQuark()) == std::a 58 if (std::abs((*i)->GetDiQuark()) == std::abs(diQuark)) 64 { 59 { 65 sum += (*i)->GetProbability(); 60 sum += (*i)->GetProbability(); 66 } 61 } 67 } 62 } 68 return sum; 63 return sum; 69 } 64 } 70 65 71 << 72 G4int G4SPBaryon:: 66 G4int G4SPBaryon:: 73 MatchDiQuarkAndGetQuark(const G4SPBaryon & aBa 67 MatchDiQuarkAndGetQuark(const G4SPBaryon & aBaryon, G4int & aDiQuark) const 74 { 68 { 75 G4int result=0; 69 G4int result=0; 76 typedef std::vector<G4SPPartonInfo *>::const 70 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 77 iter i; 71 iter i; 78 G4double running = 0; 72 G4double running = 0; 79 G4double total = 0; 73 G4double total = 0; 80 for (i = thePartonInfo.begin(); i!=theParton << 74 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 81 { 75 { 82 total += aBaryon.GetProbability((*i)->GetD 76 total += aBaryon.GetProbability((*i)->GetDiQuark()); 83 } 77 } 84 G4double random = G4UniformRand(); << 78 G4double random = G4UniformRand()*total; 85 for(i = thePartonInfo.begin(); i!=thePartonI 79 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 86 { 80 { 87 running += aBaryon.GetProbability((*i)->Ge 81 running += aBaryon.GetProbability((*i)->GetDiQuark()); 88 if (random<running/total) << 82 if(random/total<running) break; 89 { << 90 result = (*i)->GetQuark(); // (diquark << 91 aDiQuark = (*i)->GetDiQuark(); << 92 break; << 93 } << 94 } 83 } >> 84 result = (*i)->GetQuark(); // (diquark annihilated) >> 85 aDiQuark = (*i)->GetDiQuark(); 95 return result; 86 return result; 96 } 87 } 97 88 98 << 99 void G4SPBaryon:: 89 void G4SPBaryon:: 100 SampleQuarkAndDiquark(G4int & quark, G4int & d 90 SampleQuarkAndDiquark(G4int & quark, G4int & diQuark) const 101 { 91 { 102 typedef std::vector<G4SPPartonInfo *>::const 92 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 103 << 104 G4double random = G4UniformRand(); 93 G4double random = G4UniformRand(); 105 G4double sum = 0; 94 G4double sum = 0; 106 iter i; 95 iter i; 107 << 96 for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++) 108 for (i=thePartonInfo.begin() ; i!=thePartonI << 109 { 97 { 110 sum += (*i)->GetProbability(); 98 sum += (*i)->GetProbability(); 111 if (sum > random) << 99 if (sum > random) 112 { 100 { 113 if (theDefinition->GetPDGEncoding() < 0) 101 if (theDefinition->GetPDGEncoding() < 0) 114 { 102 { 115 quark = (*i)->GetDiQuark(); << 103 quark = -(*i)->GetDiQuark(); 116 diQuark = (*i)->GetQuark(); << 104 diQuark = -(*i)->GetQuark(); 117 } 105 } 118 else 106 else 119 { 107 { 120 quark = (*i)->GetQuark(); << 108 quark = (*i)->GetQuark(); 121 diQuark = (*i)->GetDiQuark(); << 109 diQuark = (*i)->GetDiQuark(); 122 } 110 } 123 break; << 111 break; 124 } << 112 } 125 } 113 } 126 } 114 } 127 115 128 << 129 void G4SPBaryon:: 116 void G4SPBaryon:: 130 FindDiquark(G4int quark, G4int & diQuark) cons 117 FindDiquark(G4int quark, G4int & diQuark) const 131 { 118 { 132 typedef std::vector<G4SPPartonInfo *>::const 119 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 133 G4double sum = 0; 120 G4double sum = 0; 134 iter i; << 121 iter i; 135 for (i=thePartonInfo.begin() ; i!=thePartonI << 122 for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++) 136 { 123 { 137 if (std::abs((*i)->GetQuark()) == std::abs 124 if (std::abs((*i)->GetQuark()) == std::abs(quark)) 138 { 125 { 139 sum += (*i)->GetProbability(); 126 sum += (*i)->GetProbability(); 140 } 127 } 141 } 128 } 142 G4double random = G4UniformRand(); 129 G4double random = G4UniformRand(); 143 G4double running = 0; 130 G4double running = 0; 144 for (i=thePartonInfo.begin() ; i!=thePartonI << 131 for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++) >> 132 { 145 if (std::abs((*i)->GetQuark()) == std::abs 133 if (std::abs((*i)->GetQuark()) == std::abs(quark)) 146 { 134 { 147 running += (*i)->GetProbability(); 135 running += (*i)->GetProbability(); 148 if (running/sum >= random) << 136 if (running/sum >= random) 149 { 137 { 150 diQuark = (*i)->GetDiQuark(); << 138 diQuark = (*i)->GetDiQuark(); 151 break; << 139 break; 152 } 140 } 153 } 141 } 154 } 142 } 155 } 143 } 156 144 157 145 158 G4SPBaryon:: 146 G4SPBaryon:: 159 G4SPBaryon(G4Proton * aProton) 147 G4SPBaryon(G4Proton * aProton) 160 { 148 { 161 theDefinition = aProton; << 149 theDefinition = aProton; 162 thePartonInfo.push_back(new G4SPPartonInfo(2 << 150 thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.)); // uu_1, d 163 thePartonInfo.push_back(new G4SPPartonInfo(2 << 151 thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./6.)); // ud_1, u 164 thePartonInfo.push_back(new G4SPPartonInfo(2 << 152 thePartonInfo.push_back(new G4SPPartonInfo(2101, 2, 1./2.)); // ud_0, u 165 } 153 } 166 154 167 G4SPBaryon:: 155 G4SPBaryon:: 168 G4SPBaryon(G4AntiProton * aAntiProton) 156 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 << 177 G4SPBaryon:: 164 G4SPBaryon:: 178 G4SPBaryon(G4Neutron * aNeutron) 165 G4SPBaryon(G4Neutron * aNeutron) 179 { 166 { 180 theDefinition = aNeutron; << 167 theDefinition = aNeutron; 181 thePartonInfo.push_back(new G4SPPartonInfo(2 << 168 thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 1./6.)); // ud_1, d 182 thePartonInfo.push_back(new G4SPPartonInfo(2 << 169 thePartonInfo.push_back(new G4SPPartonInfo(2101, 1, 1./2.)); // ud_0, d 183 thePartonInfo.push_back(new G4SPPartonInfo(1 << 170 thePartonInfo.push_back(new G4SPPartonInfo(1103, 2, 1./3.)); // dd_1, u 184 } 171 } 185 172 186 G4SPBaryon:: 173 G4SPBaryon:: 187 G4SPBaryon(G4AntiNeutron * aAntiNeutron) 174 G4SPBaryon(G4AntiNeutron * aAntiNeutron) 188 { 175 { 189 theDefinition = aAntiNeutron; << 176 theDefinition = aAntiNeutron; 190 thePartonInfo.push_back(new G4SPPartonInfo(- << 177 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -1, 1./6.)); 191 thePartonInfo.push_back(new G4SPPartonInfo(- << 178 thePartonInfo.push_back(new G4SPPartonInfo(-2101, -1, 1./2.)); 192 thePartonInfo.push_back(new G4SPPartonInfo(- << 179 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -2, 1./3.)); 193 } 180 } 194 181 195 << 196 G4SPBaryon:: 182 G4SPBaryon:: 197 G4SPBaryon(G4Lambda * aLambda) 183 G4SPBaryon(G4Lambda * aLambda) 198 { 184 { 199 theDefinition = aLambda; << 185 theDefinition = aLambda; 200 thePartonInfo.push_back(new G4SPPartonInfo(2 << 186 thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); // ud_1, s 201 thePartonInfo.push_back(new G4SPPartonInfo(3 << 187 thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./4.)); // su_1, d 202 thePartonInfo.push_back(new G4SPPartonInfo(3 << 188 thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./12.)); // su_0, d 203 thePartonInfo.push_back(new G4SPPartonInfo(3 << 189 thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./4.)); // sd_1, u 204 thePartonInfo.push_back(new G4SPPartonInfo(3 << 190 thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./12.)); // sd_0, u 205 } 191 } 206 192 207 G4SPBaryon:: 193 G4SPBaryon:: 208 G4SPBaryon(G4AntiLambda * aAntiLambda) 194 G4SPBaryon(G4AntiLambda * aAntiLambda) 209 { 195 { 210 theDefinition = aAntiLambda; << 196 theDefinition = aAntiLambda; 211 thePartonInfo.push_back(new G4SPPartonInfo(- << 197 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.)); 212 thePartonInfo.push_back(new G4SPPartonInfo(- << 198 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./4.)); 213 thePartonInfo.push_back(new G4SPPartonInfo(- << 199 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -1, 1./12.)); 214 thePartonInfo.push_back(new G4SPPartonInfo(- << 200 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./4.)); 215 thePartonInfo.push_back(new G4SPPartonInfo(- << 201 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -2, 1./12.)); 216 } 202 } 217 203 218 << 219 G4SPBaryon:: 204 G4SPBaryon:: 220 G4SPBaryon(G4SigmaPlus * aSigmaPlus) 205 G4SPBaryon(G4SigmaPlus * aSigmaPlus) 221 { 206 { 222 theDefinition = aSigmaPlus; << 207 theDefinition = aSigmaPlus; 223 thePartonInfo.push_back(new G4SPPartonInfo(2 << 208 thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.)); 224 thePartonInfo.push_back(new G4SPPartonInfo(3 << 209 thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 1./6.)); 225 thePartonInfo.push_back(new G4SPPartonInfo(3 << 210 thePartonInfo.push_back(new G4SPPartonInfo(3201, 2, 1./2.)); 226 } 211 } 227 212 228 G4SPBaryon:: 213 G4SPBaryon:: 229 G4SPBaryon(G4AntiSigmaPlus * aAntiSigmaPlus) 214 G4SPBaryon(G4AntiSigmaPlus * aAntiSigmaPlus) 230 { 215 { 231 theDefinition = aAntiSigmaPlus; << 216 theDefinition = aAntiSigmaPlus; 232 thePartonInfo.push_back(new G4SPPartonInfo(- << 217 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -3, 1./3.)); 233 thePartonInfo.push_back(new G4SPPartonInfo(- << 218 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -2, 1./6.)); 234 thePartonInfo.push_back(new G4SPPartonInfo(- << 219 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -2, 1./2.)); 235 } 220 } 236 221 237 << 238 G4SPBaryon:: 222 G4SPBaryon:: 239 G4SPBaryon(G4SigmaZero * aSigmaZero) 223 G4SPBaryon(G4SigmaZero * aSigmaZero) 240 { 224 { 241 theDefinition = aSigmaZero; << 225 theDefinition = aSigmaZero; 242 thePartonInfo.push_back(new G4SPPartonInfo(2 << 226 thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); 243 thePartonInfo.push_back(new G4SPPartonInfo(3 << 227 thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./12.)); 244 thePartonInfo.push_back(new G4SPPartonInfo(3 << 228 thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./4.)); 245 thePartonInfo.push_back(new G4SPPartonInfo(3 << 229 thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./12.)); 246 thePartonInfo.push_back(new G4SPPartonInfo(3 << 230 thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./4.)); 247 } 231 } 248 232 249 G4SPBaryon:: 233 G4SPBaryon:: 250 G4SPBaryon(G4AntiSigmaZero * aAntiSigmaZero) 234 G4SPBaryon(G4AntiSigmaZero * aAntiSigmaZero) 251 { 235 { 252 theDefinition = aAntiSigmaZero; << 236 theDefinition = aAntiSigmaZero; 253 thePartonInfo.push_back(new G4SPPartonInfo(- << 237 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.)); 254 thePartonInfo.push_back(new G4SPPartonInfo(- << 238 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./12.)); 255 thePartonInfo.push_back(new G4SPPartonInfo(- << 239 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -1, 1./4.)); 256 thePartonInfo.push_back(new G4SPPartonInfo(- << 240 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./12.)); 257 thePartonInfo.push_back(new G4SPPartonInfo(- << 241 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -2, 1./4.)); 258 } 242 } 259 243 260 << 261 G4SPBaryon:: 244 G4SPBaryon:: 262 G4SPBaryon(G4SigmaMinus * aSigmaMinus) 245 G4SPBaryon(G4SigmaMinus * aSigmaMinus) 263 { 246 { 264 theDefinition = aSigmaMinus; << 247 theDefinition = aSigmaMinus; 265 thePartonInfo.push_back(new G4SPPartonInfo(1 << 248 thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.)); 266 thePartonInfo.push_back(new G4SPPartonInfo(3 << 249 thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 1./6.)); 267 thePartonInfo.push_back(new G4SPPartonInfo(3 << 250 thePartonInfo.push_back(new G4SPPartonInfo(3101, 1, 1./2.)); 268 } 251 } 269 252 270 G4SPBaryon:: 253 G4SPBaryon:: 271 G4SPBaryon(G4AntiSigmaMinus * aAntiSigmaMinus) 254 G4SPBaryon(G4AntiSigmaMinus * aAntiSigmaMinus) 272 { 255 { 273 theDefinition = aAntiSigmaMinus; << 256 theDefinition = aAntiSigmaMinus; 274 thePartonInfo.push_back(new G4SPPartonInfo(- << 257 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -3, 1./3.)); 275 thePartonInfo.push_back(new G4SPPartonInfo(- << 258 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -1, 1./6.)); 276 thePartonInfo.push_back(new G4SPPartonInfo(- << 259 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -1, 1./2.)); 277 } 260 } 278 261 279 << 280 G4SPBaryon:: 262 G4SPBaryon:: 281 G4SPBaryon(G4XiZero * aXiZero) << 263 G4SPBaryon(G4XiMinus * aXiMinus) 282 { 264 { 283 theDefinition = aXiZero; << 265 theDefinition = aXiMinus; 284 thePartonInfo.push_back(new G4SPPartonInfo(3 << 266 thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 1./6.)); 285 thePartonInfo.push_back(new G4SPPartonInfo(3 << 267 thePartonInfo.push_back(new G4SPPartonInfo(3101, 3, 1./2.)); 286 thePartonInfo.push_back(new G4SPPartonInfo(3 << 268 thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.)); 287 } 269 } 288 270 289 G4SPBaryon:: 271 G4SPBaryon:: 290 G4SPBaryon(G4AntiXiZero * aAntiXiZero) << 272 G4SPBaryon(G4AntiXiMinus * aAntiXiMinus) 291 { 273 { 292 theDefinition = aAntiXiZero; << 274 theDefinition = aAntiXiMinus; 293 thePartonInfo.push_back(new G4SPPartonInfo(- << 275 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 1./6.)); 294 thePartonInfo.push_back(new G4SPPartonInfo(- << 276 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -3, 1./2.)); 295 thePartonInfo.push_back(new G4SPPartonInfo(- << 277 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.)); 296 } 278 } 297 279 298 << 299 G4SPBaryon:: 280 G4SPBaryon:: 300 G4SPBaryon(G4XiMinus * aXiMinus) << 281 G4SPBaryon(G4XiZero * aXiZero) 301 { 282 { 302 theDefinition = aXiMinus; << 283 theDefinition = aXiZero; 303 thePartonInfo.push_back(new G4SPPartonInfo(3 << 284 thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./6.)); 304 thePartonInfo.push_back(new G4SPPartonInfo(3 << 285 thePartonInfo.push_back(new G4SPPartonInfo(3201, 3, 1./2.)); 305 thePartonInfo.push_back(new G4SPPartonInfo(3 << 286 thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 1./3.)); 306 } 287 } 307 288 308 G4SPBaryon:: 289 G4SPBaryon:: 309 G4SPBaryon(G4AntiXiMinus * aAntiXiMinus) << 290 G4SPBaryon(G4AntiXiZero * aAntiXiZero) 310 { 291 { 311 theDefinition = aAntiXiMinus; << 292 theDefinition = aAntiXiZero; 312 thePartonInfo.push_back(new G4SPPartonInfo(- << 293 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -3, 1./6.)); 313 thePartonInfo.push_back(new G4SPPartonInfo(- << 294 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -3, 1./2.)); 314 thePartonInfo.push_back(new G4SPPartonInfo(- << 295 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -2, 1./3.)); 315 } 296 } 316 297 317 << 318 G4SPBaryon:: 298 G4SPBaryon:: 319 G4SPBaryon(G4OmegaMinus * anOmegaMinus) 299 G4SPBaryon(G4OmegaMinus * anOmegaMinus) 320 { 300 { 321 theDefinition = anOmegaMinus; << 301 theDefinition = anOmegaMinus; 322 thePartonInfo.push_back(new G4SPPartonInfo(3 << 302 thePartonInfo.push_back(new G4SPPartonInfo(3303, 3, 1.)); 323 } 303 } 324 304 >> 305 325 G4SPBaryon:: 306 G4SPBaryon:: 326 G4SPBaryon(G4AntiOmegaMinus * anAntiOmegaMinus 307 G4SPBaryon(G4AntiOmegaMinus * anAntiOmegaMinus) 327 { 308 { 328 theDefinition = anAntiOmegaMinus; << 309 theDefinition = anAntiOmegaMinus; 329 thePartonInfo.push_back(new G4SPPartonInfo(- << 310 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -3, 1.)); 330 } 311 } 331 312 332 << 333 // non static particles 313 // non static particles 334 G4SPBaryon:: 314 G4SPBaryon:: 335 G4SPBaryon(G4ParticleDefinition * aDefinition) 315 G4SPBaryon(G4ParticleDefinition * aDefinition) 336 { 316 { 337 theDefinition = aDefinition; 317 theDefinition = aDefinition; 338 if (theDefinition == G4ParticleTable::GetPar << 318 if(theDefinition == >> 319 G4ParticleTable::GetParticleTable()->FindParticle(2224))// D++ 339 { 320 { 340 thePartonInfo.push_back(new G4SPPartonInfo << 321 thePartonInfo.push_back(new G4SPPartonInfo(2203, 2, 1.)); 341 } 322 } 342 else if (theDefinition == G4ParticleTable::G << 323 else if(theDefinition == >> 324 G4ParticleTable::GetParticleTable()->FindParticle(-2224))// anti D++ 343 { 325 { 344 thePartonInfo.push_back(new G4SPPartonInfo 326 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -2, 1.)); 345 } 327 } 346 else if (theDefinition == G4ParticleTable::G << 328 else if(theDefinition == >> 329 G4ParticleTable::GetParticleTable()->FindParticle(2214))// D+ 347 { 330 { 348 thePartonInfo.push_back(new G4SPPartonInfo << 331 thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.)); 349 thePartonInfo.push_back(new G4SPPartonInfo << 332 thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 2./3.)); 350 } 333 } 351 else if (theDefinition == G4ParticleTable::G << 334 else if(theDefinition == >> 335 G4ParticleTable::GetParticleTable()->FindParticle(-2214))// anti D+ 352 { 336 { 353 thePartonInfo.push_back(new G4SPPartonInfo 337 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -1, 1./3.)); 354 thePartonInfo.push_back(new G4SPPartonInfo 338 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 2./3.)); 355 } 339 } 356 else if (theDefinition == G4ParticleTable::G << 340 else if(theDefinition == >> 341 G4ParticleTable::GetParticleTable()->FindParticle(2114))// D0 357 { 342 { 358 thePartonInfo.push_back(new G4SPPartonInfo << 343 thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 2./3.)); 359 thePartonInfo.push_back(new G4SPPartonInfo << 344 thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./3.)); 360 } 345 } 361 else if (theDefinition == G4ParticleTable::G << 346 else if(theDefinition == >> 347 G4ParticleTable::GetParticleTable()->FindParticle(-2114))// anti D0 362 { 348 { 363 thePartonInfo.push_back(new G4SPPartonInfo 349 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -1, 2./3.)); 364 thePartonInfo.push_back(new G4SPPartonInfo 350 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 1./3.)); 365 } 351 } 366 else if (theDefinition == G4ParticleTable::G << 352 else if(theDefinition == >> 353 G4ParticleTable::GetParticleTable()->FindParticle(1114))// D- 367 { 354 { 368 thePartonInfo.push_back(new G4SPPartonInfo << 355 thePartonInfo.push_back(new G4SPPartonInfo(1103, 1, 1.)); 369 } 356 } 370 else if (theDefinition == G4ParticleTable::G << 357 else if(theDefinition == >> 358 G4ParticleTable::GetParticleTable()->FindParticle(-1114))// anti D- 371 { 359 { 372 thePartonInfo.push_back(new G4SPPartonInfo 360 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -1, 1.)); 373 } << 361 } 374 } << 362 else if(theDefinition == 375 << 363 G4ParticleTable::GetParticleTable()->FindParticle(3224))// S*+ 376 << 364 { 377 G4SPBaryon::~G4SPBaryon() << 365 thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.)); 378 { << 366 thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 2./3.)); 379 for (unsigned int i=0;i<thePartonInfo.size() << 367 } 380 } << 368 else if(theDefinition == 381 << 369 G4ParticleTable::GetParticleTable()->FindParticle(-3224))// anti S*+ 382 << 370 { 383 // Extension to charmed and bottom baryons and << 371 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -3, 1./3.)); 384 // G4SPPartonInfo(G4int diq, G4int q, G4dou << 372 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -2, 2./3.)); 385 << 373 } 386 G4SPBaryon::G4SPBaryon(G4LambdacPlus * aLambda << 374 else if(theDefinition == 387 // lambda_c+(udc) treated as lambda(uds) wit << 375 G4ParticleTable::GetParticleTable()->FindParticle(3214))// S*0 388 theDefinition = aLambdacPlus; << 376 { 389 thePartonInfo.push_back(new G4SPPartonInfo(2 << 377 thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); 390 thePartonInfo.push_back(new G4SPPartonInfo(4 << 378 thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./3.)); 391 thePartonInfo.push_back(new G4SPPartonInfo(4 << 379 thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./3.)); 392 thePartonInfo.push_back(new G4SPPartonInfo(4 << 380 } 393 thePartonInfo.push_back(new G4SPPartonInfo(4 << 381 else if(theDefinition == 394 } << 382 G4ParticleTable::GetParticleTable()->FindParticle(-3214))// anti S*0 395 << 383 { 396 G4SPBaryon::G4SPBaryon(G4AntiLambdacPlus * aAn << 384 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.)); 397 theDefinition = aAntiLambdacPlus; << 385 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./3.)); 398 thePartonInfo.push_back(new G4SPPartonInfo(- << 386 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./3.)); 399 thePartonInfo.push_back(new G4SPPartonInfo(- << 387 } 400 thePartonInfo.push_back(new G4SPPartonInfo(- << 388 else if(theDefinition == 401 thePartonInfo.push_back(new G4SPPartonInfo(- << 389 G4ParticleTable::GetParticleTable()->FindParticle(3114))// S*- 402 thePartonInfo.push_back(new G4SPPartonInfo(- << 390 { 403 } << 391 thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.)); 404 << 392 thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 2./3.)); 405 << 393 } 406 G4SPBaryon::G4SPBaryon(G4SigmacPlusPlus * aSig << 394 else if(theDefinition == 407 // sigma_c++(uuc) treated as sigma+(uus) wit << 395 G4ParticleTable::GetParticleTable()->FindParticle(-3224))// anti S*- 408 theDefinition = aSigmacPlusPlus; << 396 { 409 thePartonInfo.push_back(new G4SPPartonInfo(2 << 397 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -3, 1./3.)); 410 thePartonInfo.push_back(new G4SPPartonInfo(4 << 398 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -1, 2./3.)); 411 thePartonInfo.push_back(new G4SPPartonInfo(4 << 399 } 412 } << 400 else if(theDefinition == 413 << 401 G4ParticleTable::GetParticleTable()->FindParticle(3324))// Xi*0 414 G4SPBaryon::G4SPBaryon(G4AntiSigmacPlusPlus * << 402 { 415 theDefinition = aAntiSigmacPlusPlus; << 403 thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./3.)); 416 thePartonInfo.push_back(new G4SPPartonInfo(- << 404 thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 2./3.)); 417 thePartonInfo.push_back(new G4SPPartonInfo(- << 405 } 418 thePartonInfo.push_back(new G4SPPartonInfo(- << 406 else if(theDefinition == 419 } << 407 G4ParticleTable::GetParticleTable()->FindParticle(-3324))// anti Xi*0 420 << 408 { 421 << 409 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -3, 1./3.)); 422 G4SPBaryon::G4SPBaryon(G4SigmacPlus * aSigmacP << 410 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -2, 2./3.)); 423 // sigma_c+(udc) treated as sigma0(uds) with << 411 } 424 theDefinition = aSigmacPlus; << 412 else if(theDefinition == 425 thePartonInfo.push_back(new G4SPPartonInfo(2 << 413 G4ParticleTable::GetParticleTable()->FindParticle(3314))// Xi*- 426 thePartonInfo.push_back(new G4SPPartonInfo(4 << 414 { 427 thePartonInfo.push_back(new G4SPPartonInfo(4 << 415 thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 2./3.)); 428 thePartonInfo.push_back(new G4SPPartonInfo(4 << 416 thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.)); 429 thePartonInfo.push_back(new G4SPPartonInfo(4 << 417 } 430 } << 418 else if(theDefinition == 431 << 419 G4ParticleTable::GetParticleTable()->FindParticle(-3314))// anti Xi*- 432 G4SPBaryon::G4SPBaryon(G4AntiSigmacPlus * aAnt << 420 { 433 theDefinition = aAntiSigmacPlus; << 421 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 2./3.)); 434 thePartonInfo.push_back(new G4SPPartonInfo(- << 422 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.)); 435 thePartonInfo.push_back(new G4SPPartonInfo(- << 423 } 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 } 424 } 616 425