#include <G4SPBaryon.hh>
Definition at line 56 of file G4SPBaryon.hh.
G4SPBaryon::G4SPBaryon | ( | G4Proton * | aProton | ) |
Definition at line 154 of file G4SPBaryon.cc.
00155 { 00156 theDefinition = aProton; 00157 thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.)); // uu_1, d 00158 thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./6.)); // ud_1, u 00159 thePartonInfo.push_back(new G4SPPartonInfo(2101, 2, 1./2.)); // ud_0, u 00160 }
G4SPBaryon::G4SPBaryon | ( | G4Neutron * | aNeutron | ) |
Definition at line 172 of file G4SPBaryon.cc.
00173 { 00174 theDefinition = aNeutron; 00175 thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 1./6.)); // ud_1, d 00176 thePartonInfo.push_back(new G4SPPartonInfo(2101, 1, 1./2.)); // ud_0, d 00177 thePartonInfo.push_back(new G4SPPartonInfo(1103, 2, 1./3.)); // dd_1, u 00178 }
G4SPBaryon::G4SPBaryon | ( | G4Lambda * | aLambda | ) |
Definition at line 190 of file G4SPBaryon.cc.
00191 { 00192 theDefinition = aLambda; 00193 thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); // ud_1, s 00194 thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./4.)); // su_1, d 00195 thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./12.)); // su_0, d 00196 thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./4.)); // sd_1, u 00197 thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./12.)); // sd_0, u 00198 }
G4SPBaryon::G4SPBaryon | ( | G4SigmaPlus * | aSigmaPlus | ) |
Definition at line 212 of file G4SPBaryon.cc.
00213 { 00214 theDefinition = aSigmaPlus; 00215 thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.)); 00216 thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 1./6.)); 00217 thePartonInfo.push_back(new G4SPPartonInfo(3201, 2, 1./2.)); 00218 }
G4SPBaryon::G4SPBaryon | ( | G4SigmaZero * | aSigmaZero | ) |
Definition at line 230 of file G4SPBaryon.cc.
00231 { 00232 theDefinition = aSigmaZero; 00233 thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); 00234 thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./12.)); 00235 thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./4.)); 00236 thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./12.)); 00237 thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./4.)); 00238 }
G4SPBaryon::G4SPBaryon | ( | G4SigmaMinus * | aSigmaMinus | ) |
Definition at line 252 of file G4SPBaryon.cc.
00253 { 00254 theDefinition = aSigmaMinus; 00255 thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.)); 00256 thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 1./6.)); 00257 thePartonInfo.push_back(new G4SPPartonInfo(3101, 1, 1./2.)); 00258 }
G4SPBaryon::G4SPBaryon | ( | G4XiMinus * | aXiMinus | ) |
Definition at line 270 of file G4SPBaryon.cc.
00271 { 00272 theDefinition = aXiMinus; 00273 thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 1./6.)); 00274 thePartonInfo.push_back(new G4SPPartonInfo(3101, 3, 1./2.)); 00275 thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.)); 00276 }
G4SPBaryon::G4SPBaryon | ( | G4XiZero * | aXiZero | ) |
Definition at line 288 of file G4SPBaryon.cc.
00289 { 00290 theDefinition = aXiZero; 00291 thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./6.)); 00292 thePartonInfo.push_back(new G4SPPartonInfo(3201, 3, 1./2.)); 00293 thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 1./3.)); 00294 }
G4SPBaryon::G4SPBaryon | ( | G4OmegaMinus * | anOmegaMinus | ) |
Definition at line 306 of file G4SPBaryon.cc.
00307 { 00308 theDefinition = anOmegaMinus; 00309 thePartonInfo.push_back(new G4SPPartonInfo(3303, 3, 1.)); 00310 }
G4SPBaryon::G4SPBaryon | ( | G4AntiProton * | aAntiProton | ) |
Definition at line 163 of file G4SPBaryon.cc.
00164 { 00165 theDefinition = aAntiProton; 00166 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -1, 1./3.)); 00167 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 1./6.)); 00168 thePartonInfo.push_back(new G4SPPartonInfo(-2101, -2, 1./2.)); 00169 }
G4SPBaryon::G4SPBaryon | ( | G4AntiNeutron * | aAntiNeutron | ) |
Definition at line 181 of file G4SPBaryon.cc.
00182 { 00183 theDefinition = aAntiNeutron; 00184 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -1, 1./6.)); 00185 thePartonInfo.push_back(new G4SPPartonInfo(-2101, -1, 1./2.)); 00186 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -2, 1./3.)); 00187 }
G4SPBaryon::G4SPBaryon | ( | G4AntiLambda * | aAntiLambda | ) |
Definition at line 201 of file G4SPBaryon.cc.
00202 { 00203 theDefinition = aAntiLambda; 00204 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.)); 00205 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./4.)); 00206 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -1, 1./12.)); 00207 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./4.)); 00208 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -2, 1./12.)); 00209 }
G4SPBaryon::G4SPBaryon | ( | G4AntiSigmaPlus * | aAntiSigmaPlus | ) |
Definition at line 221 of file G4SPBaryon.cc.
00222 { 00223 theDefinition = aAntiSigmaPlus; 00224 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -3, 1./3.)); 00225 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -2, 1./6.)); 00226 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -2, 1./2.)); 00227 }
G4SPBaryon::G4SPBaryon | ( | G4AntiSigmaZero * | aAntiSigmaZero | ) |
Definition at line 241 of file G4SPBaryon.cc.
00242 { 00243 theDefinition = aAntiSigmaZero; 00244 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.)); 00245 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./12.)); 00246 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -1, 1./4.)); 00247 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./12.)); 00248 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -2, 1./4.)); 00249 }
G4SPBaryon::G4SPBaryon | ( | G4AntiSigmaMinus * | aAntiSigmaMinus | ) |
Definition at line 261 of file G4SPBaryon.cc.
00262 { 00263 theDefinition = aAntiSigmaMinus; 00264 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -3, 1./3.)); 00265 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -1, 1./6.)); 00266 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -1, 1./2.)); 00267 }
G4SPBaryon::G4SPBaryon | ( | G4AntiXiMinus * | aAntiXiMinus | ) |
Definition at line 279 of file G4SPBaryon.cc.
00280 { 00281 theDefinition = aAntiXiMinus; 00282 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 1./6.)); 00283 thePartonInfo.push_back(new G4SPPartonInfo(-3101, -3, 1./2.)); 00284 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.)); 00285 }
G4SPBaryon::G4SPBaryon | ( | G4AntiXiZero * | aAntiXiZero | ) |
Definition at line 297 of file G4SPBaryon.cc.
00298 { 00299 theDefinition = aAntiXiZero; 00300 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -3, 1./6.)); 00301 thePartonInfo.push_back(new G4SPPartonInfo(-3201, -3, 1./2.)); 00302 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -2, 1./3.)); 00303 }
G4SPBaryon::G4SPBaryon | ( | G4AntiOmegaMinus * | anAntiOmegaMinus | ) |
Definition at line 314 of file G4SPBaryon.cc.
00315 { 00316 theDefinition = anAntiOmegaMinus; 00317 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -3, 1.)); 00318 }
G4SPBaryon::G4SPBaryon | ( | G4ParticleDefinition * | aDefinition | ) |
Definition at line 322 of file G4SPBaryon.cc.
References G4ParticleTable::GetParticleTable().
00323 { 00324 theDefinition = aDefinition; 00325 if(theDefinition == 00326 G4ParticleTable::GetParticleTable()->FindParticle(2224))// D++ 00327 { 00328 thePartonInfo.push_back(new G4SPPartonInfo(2203, 2, 1.)); 00329 } 00330 else if(theDefinition == 00331 G4ParticleTable::GetParticleTable()->FindParticle(-2224))// anti D++ 00332 { 00333 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -2, 1.)); 00334 } 00335 else if(theDefinition == 00336 G4ParticleTable::GetParticleTable()->FindParticle(2214))// D+ 00337 { 00338 thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.)); 00339 thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 2./3.)); 00340 } 00341 else if(theDefinition == 00342 G4ParticleTable::GetParticleTable()->FindParticle(-2214))// anti D+ 00343 { 00344 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -1, 1./3.)); 00345 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 2./3.)); 00346 } 00347 else if(theDefinition == 00348 G4ParticleTable::GetParticleTable()->FindParticle(2114))// D0 00349 { 00350 thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 2./3.)); 00351 thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./3.)); 00352 } 00353 else if(theDefinition == 00354 G4ParticleTable::GetParticleTable()->FindParticle(-2114))// anti D0 00355 { 00356 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -1, 2./3.)); 00357 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 1./3.)); 00358 } 00359 else if(theDefinition == 00360 G4ParticleTable::GetParticleTable()->FindParticle(1114))// D- 00361 { 00362 thePartonInfo.push_back(new G4SPPartonInfo(1103, 1, 1.)); 00363 } 00364 else if(theDefinition == 00365 G4ParticleTable::GetParticleTable()->FindParticle(-1114))// anti D- 00366 { 00367 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -1, 1.)); 00368 } 00369 else if(theDefinition == 00370 G4ParticleTable::GetParticleTable()->FindParticle(3224))// S*+ 00371 { 00372 thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.)); 00373 thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 2./3.)); 00374 } 00375 else if(theDefinition == 00376 G4ParticleTable::GetParticleTable()->FindParticle(-3224))// anti S*+ 00377 { 00378 thePartonInfo.push_back(new G4SPPartonInfo(-2203, -3, 1./3.)); 00379 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -2, 2./3.)); 00380 } 00381 else if(theDefinition == 00382 G4ParticleTable::GetParticleTable()->FindParticle(3214))// S*0 00383 { 00384 thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); 00385 thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./3.)); 00386 thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./3.)); 00387 } 00388 else if(theDefinition == 00389 G4ParticleTable::GetParticleTable()->FindParticle(-3214))// anti S*0 00390 { 00391 thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.)); 00392 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./3.)); 00393 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./3.)); 00394 } 00395 else if(theDefinition == 00396 G4ParticleTable::GetParticleTable()->FindParticle(3114))// S*- 00397 { 00398 thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.)); 00399 thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 2./3.)); 00400 } 00401 else if(theDefinition == 00402 G4ParticleTable::GetParticleTable()->FindParticle(-3224))// anti S*- 00403 { 00404 thePartonInfo.push_back(new G4SPPartonInfo(-1103, -3, 1./3.)); 00405 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -1, 2./3.)); 00406 } 00407 else if(theDefinition == 00408 G4ParticleTable::GetParticleTable()->FindParticle(3324))// Xi*0 00409 { 00410 thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./3.)); 00411 thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 2./3.)); 00412 } 00413 else if(theDefinition == 00414 G4ParticleTable::GetParticleTable()->FindParticle(-3324))// anti Xi*0 00415 { 00416 thePartonInfo.push_back(new G4SPPartonInfo(-3203, -3, 1./3.)); 00417 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -2, 2./3.)); 00418 } 00419 else if(theDefinition == 00420 G4ParticleTable::GetParticleTable()->FindParticle(3314))// Xi*- 00421 { 00422 thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 2./3.)); 00423 thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.)); 00424 } 00425 else if(theDefinition == 00426 G4ParticleTable::GetParticleTable()->FindParticle(-3314))// anti Xi*- 00427 { 00428 thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 2./3.)); 00429 thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.)); 00430 } 00431 }
G4SPBaryon::~G4SPBaryon | ( | ) |
Definition at line 124 of file G4SPBaryon.cc.
References G4UniformRand.
Referenced by G4BaryonSplitter::FindDiquark().
00125 { 00126 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 00127 G4double sum = 0; 00128 iter i; 00129 for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++) 00130 { 00131 if (std::abs((*i)->GetQuark()) == std::abs(quark)) 00132 { 00133 sum += (*i)->GetProbability(); 00134 } 00135 } 00136 G4double random = G4UniformRand(); 00137 G4double running = 0; 00138 for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++) 00139 { 00140 if (std::abs((*i)->GetQuark()) == std::abs(quark)) 00141 { 00142 running += (*i)->GetProbability(); 00143 if (running/sum >= random) 00144 { 00145 diQuark = (*i)->GetDiQuark(); 00146 break; 00147 } 00148 } 00149 } 00150 }
Definition at line 32 of file G4SPBaryon.cc.
References G4UniformRand, and GetProbability().
00033 { 00034 G4double sum = GetProbability(diQuark); 00035 G4double random = G4UniformRand(); 00036 G4double running = 0; 00037 G4int Quark(0); 00038 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 00039 iter i; 00040 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 00041 { 00042 if (std::abs((*i)->GetDiQuark()) == std::abs(diQuark)) 00043 { 00044 running += (*i)->GetProbability(); 00045 if (running/sum >= random) 00046 { 00047 Quark = (*i)->GetQuark(); 00048 break; 00049 } 00050 } 00051 } 00052 return Quark; 00053 }
G4ParticleDefinition* G4SPBaryon::GetDefinition | ( | ) | [inline] |
Definition at line 55 of file G4SPBaryon.cc.
Referenced by FindQuark(), and MatchDiQuarkAndGetQuark().
00056 { 00057 G4double sum = 0; 00058 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 00059 iter i; 00060 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 00061 { 00062 if (std::abs((*i)->GetDiQuark()) == std::abs(diQuark)) 00063 { 00064 sum += (*i)->GetProbability(); 00065 } 00066 } 00067 return sum; 00068 }
G4int G4SPBaryon::MatchDiQuarkAndGetQuark | ( | const G4SPBaryon & | aBaryon, | |
G4int & | aDiQuark | |||
) | const |
Definition at line 71 of file G4SPBaryon.cc.
References G4UniformRand, and GetProbability().
00072 { 00073 G4int result=0; 00074 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 00075 iter i; 00076 G4double running = 0; 00077 G4double total = 0; 00078 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 00079 { 00080 total += aBaryon.GetProbability((*i)->GetDiQuark()); 00081 } 00082 G4double random = G4UniformRand()*total; 00083 for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++) 00084 { 00085 running += aBaryon.GetProbability((*i)->GetDiQuark()); 00086 if(random/total<running) 00087 { 00088 result = (*i)->GetQuark(); // (diquark annihilated) 00089 aDiQuark = (*i)->GetDiQuark(); 00090 break; 00091 } 00092 } 00093 return result; 00094 }
Definition at line 97 of file G4SPBaryon.cc.
References G4UniformRand, and G4ParticleDefinition::GetPDGEncoding().
Referenced by G4BaryonSplitter::SplitBarion().
00098 { 00099 typedef std::vector<G4SPPartonInfo *>::const_iterator iter; 00100 G4double random = G4UniformRand(); 00101 G4double sum = 0; 00102 iter i; 00103 for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++) 00104 { 00105 sum += (*i)->GetProbability(); 00106 if (sum > random) 00107 { 00108 if (theDefinition->GetPDGEncoding() < 0) 00109 { 00110 quark = (*i)->GetDiQuark(); 00111 diQuark = (*i)->GetQuark(); 00112 } 00113 else 00114 { 00115 quark = (*i)->GetQuark(); 00116 diQuark = (*i)->GetDiQuark(); 00117 } 00118 break; 00119 } 00120 } 00121 }