#include <G4InuclElementaryParticle.hh>
Inheritance diagram for G4InuclElementaryParticle:
Definition at line 57 of file G4InuclElementaryParticle.hh.
G4InuclElementaryParticle::G4InuclElementaryParticle | ( | ) | [inline] |
G4InuclElementaryParticle::G4InuclElementaryParticle | ( | G4int | ityp, | |
Model | model = DefaultModel | |||
) | [inline] |
Definition at line 62 of file G4InuclElementaryParticle.hh.
00063 : G4InuclParticle(makeDefinition(ityp), model) {}
G4InuclElementaryParticle::G4InuclElementaryParticle | ( | const G4DynamicParticle & | dynPart, | |
Model | model = DefaultModel | |||
) | [inline] |
Definition at line 65 of file G4InuclElementaryParticle.hh.
00067 : G4InuclParticle(dynPart, model) {}
G4InuclElementaryParticle::G4InuclElementaryParticle | ( | const G4LorentzVector & | mom, | |
G4int | ityp, | |||
Model | model = DefaultModel | |||
) | [inline] |
Definition at line 69 of file G4InuclElementaryParticle.hh.
00071 : G4InuclParticle(makeDefinition(ityp), mom, model) {}
G4InuclElementaryParticle::G4InuclElementaryParticle | ( | G4double | ekin, | |
G4int | ityp, | |||
Model | model = DefaultModel | |||
) | [inline] |
Definition at line 73 of file G4InuclElementaryParticle.hh.
00075 : G4InuclParticle(makeDefinition(ityp), ekin, model) {}
G4InuclElementaryParticle::G4InuclElementaryParticle | ( | const G4LorentzVector & | mom, | |
G4ParticleDefinition * | pd, | |||
Model | model = DefaultModel | |||
) | [inline] |
Definition at line 78 of file G4InuclElementaryParticle.hh.
00080 : G4InuclParticle(pd, mom, model) {}
G4InuclElementaryParticle::G4InuclElementaryParticle | ( | const G4InuclElementaryParticle & | right | ) | [inline] |
G4bool G4InuclElementaryParticle::antibaryon | ( | ) | const [inline] |
Definition at line 122 of file G4InuclElementaryParticle.hh.
References baryon().
00122 { return baryon() < 0; }
G4bool G4InuclElementaryParticle::antinucleon | ( | ) | const [inline] |
Definition at line 114 of file G4InuclElementaryParticle.hh.
References G4InuclParticleNames::antiNeutron, G4InuclParticleNames::antiProton, and type().
00114 { 00115 return (type()==G4InuclParticleNames::antiProton || 00116 type()==G4InuclParticleNames::antiNeutron); }
G4int G4InuclElementaryParticle::baryon | ( | ) | const [inline] |
Definition at line 118 of file G4InuclElementaryParticle.hh.
References G4ParticleDefinition::GetBaryonNumber(), and G4InuclParticle::getDefinition().
Referenced by antibaryon(), hyperon(), and G4IntraNucleiCascader::setupCascade().
00118 { // Can use as a bool (!=0 ==> true) 00119 return getDefinition()->GetBaryonNumber(); 00120 }
void G4InuclElementaryParticle::fill | ( | const G4LorentzVector & | mom, | |
G4ParticleDefinition * | pd, | |||
Model | model = DefaultModel | |||
) |
void G4InuclElementaryParticle::fill | ( | const G4LorentzVector & | mom, | |
G4int | ityp, | |||
Model | model = DefaultModel | |||
) |
Definition at line 89 of file G4InuclElementaryParticle.hh.
Referenced by G4CascadeInterface::createBullet(), G4IntraNucleiCascader::createTarget(), G4CascadeInterface::createTarget(), G4IntraNucleiCascader::processSecondary(), and G4IntraNucleiCascader::releaseSecondary().
00089 { fill(0., ityp, model); }
Definition at line 217 of file G4InuclElementaryParticle.cc.
References G4ParticleDefinition::GetPDGMass(), and makeDefinition().
Referenced by G4EquilibriumEvaporator::collide(), G4IntraNucleiCascader::finishCascade(), G4NucleiModel::generateNucleonMomentum(), and G4NucleiModel::getFermiKinetic().
00217 { 00218 G4ParticleDefinition* pd = makeDefinition(ityp); 00219 return pd ? pd->GetPDGMass()*MeV/GeV : 0.0; // From G4 to Bertini units 00220 }
Definition at line 212 of file G4InuclElementaryParticle.cc.
References G4ParticleDefinition::GetAntiQuarkContent(), G4ParticleDefinition::GetQuarkContent(), and makeDefinition().
00212 { 00213 G4ParticleDefinition* pd = makeDefinition(ityp); 00214 return pd ? (pd->GetQuarkContent(3) - pd->GetAntiQuarkContent(3)) : 0; 00215 }
G4int G4InuclElementaryParticle::getStrangeness | ( | ) | const [inline] |
Definition at line 128 of file G4InuclElementaryParticle.hh.
References type().
Referenced by hyperon().
00128 { return getStrangeness(type()); }
G4bool G4InuclElementaryParticle::hyperon | ( | ) | const [inline] |
Definition at line 124 of file G4InuclElementaryParticle.hh.
References baryon(), and getStrangeness().
Referenced by G4IntraNucleiCascader::processTrappedParticle().
00124 { return (baryon() && getStrangeness()); }
G4bool G4InuclElementaryParticle::isPhoton | ( | ) | const [inline] |
Definition at line 105 of file G4InuclElementaryParticle.hh.
References G4InuclParticleNames::photon, and type().
Referenced by G4ElementaryParticleCollider::collide().
00105 { return (type() == G4InuclParticleNames::photon); }
G4ParticleDefinition * G4InuclElementaryParticle::makeDefinition | ( | G4int | ityp | ) | [static, protected] |
Definition at line 86 of file G4InuclElementaryParticle.cc.
References G4InuclParticleNames::alpha, G4InuclParticleNames::antiAlpha, G4InuclParticleNames::antiDeuteron, G4InuclParticleNames::antiHe3, G4InuclParticleNames::antiNeutron, G4InuclParticleNames::antiProton, G4InuclParticleNames::antiTriton, G4Dineutron::Definition(), G4UnboundPN::Definition(), G4Diproton::Definition(), G4AntiAlpha::Definition(), G4AntiHe3::Definition(), G4AntiTriton::Definition(), G4AntiDeuteron::Definition(), G4AntiNeutron::Definition(), G4AntiProton::Definition(), G4Alpha::Definition(), G4He3::Definition(), G4Triton::Definition(), G4Deuteron::Definition(), G4OmegaMinus::Definition(), G4XiMinus::Definition(), G4XiZero::Definition(), G4SigmaMinus::Definition(), G4SigmaZero::Definition(), G4SigmaPlus::Definition(), G4Lambda::Definition(), G4AntiKaonZero::Definition(), G4KaonZero::Definition(), G4KaonMinus::Definition(), G4KaonPlus::Definition(), G4Gamma::Definition(), G4PionZero::Definition(), G4PionMinus::Definition(), G4PionPlus::Definition(), G4Neutron::Definition(), G4Proton::Definition(), G4InuclParticleNames::deuteron, G4InuclParticleNames::dineutron, G4InuclParticleNames::diproton, G4cerr, G4endl, G4InuclParticleNames::He3, G4InuclParticleNames::kaonMinus, G4InuclParticleNames::kaonPlus, G4InuclParticleNames::kaonZero, G4InuclParticleNames::kaonZeroBar, G4InuclParticleNames::lambda, neutron, G4InuclParticleNames::omegaMinus, photon, G4InuclParticleNames::pionMinus, G4InuclParticleNames::pionPlus, G4InuclParticleNames::pionZero, G4InuclParticleNames::proton, G4InuclParticleNames::sigmaMinus, G4InuclParticleNames::sigmaPlus, G4InuclParticleNames::sigmaZero, G4InuclParticleNames::triton, G4InuclParticleNames::unboundPN, G4InuclParticleNames::xiMinus, and G4InuclParticleNames::xiZero.
Referenced by getParticleMass(), getStrangeness(), and setType().
00086 { 00087 switch(ityp) { 00088 case proton: return G4Proton::Definition(); break; 00089 case neutron: return G4Neutron::Definition(); break; 00090 case pionPlus: return G4PionPlus::Definition(); break; 00091 case pionMinus: return G4PionMinus::Definition(); break; 00092 case pionZero: return G4PionZero::Definition(); break; 00093 case photon: return G4Gamma::Definition(); break; 00094 case kaonPlus: return G4KaonPlus::Definition(); break; 00095 case kaonMinus: return G4KaonMinus::Definition(); break; 00096 case kaonZero: return G4KaonZero::Definition(); break; 00097 case kaonZeroBar: return G4AntiKaonZero::Definition(); break; 00098 case lambda: return G4Lambda::Definition(); break; 00099 case sigmaPlus: return G4SigmaPlus::Definition(); break; 00100 case sigmaZero: return G4SigmaZero::Definition(); break; 00101 case sigmaMinus: return G4SigmaMinus::Definition(); break; 00102 case xiZero: return G4XiZero::Definition(); break; 00103 case xiMinus: return G4XiMinus::Definition(); break; 00104 case omegaMinus: return G4OmegaMinus::Definition(); break; 00105 // NOTE: The four light nuclei "particles" are actually G4Ions 00106 case deuteron: return G4Deuteron::Definition(); break; 00107 case triton: return G4Triton::Definition(); break; 00108 case He3: return G4He3::Definition(); break; 00109 case alpha: return G4Alpha::Definition(); break; 00110 case antiProton: return G4AntiProton::Definition(); break; 00111 case antiNeutron: return G4AntiNeutron::Definition(); break; 00112 // NOTE: The the four light antinuclei "particles" are actually G4Ions 00113 case antiDeuteron: return G4AntiDeuteron::Definition(); break; 00114 case antiTriton: return G4AntiTriton::Definition(); break; 00115 case antiHe3: return G4AntiHe3::Definition(); break; 00116 case antiAlpha: return G4AntiAlpha::Definition(); break; 00117 // NOTE: The three unbound dibaryons are local Bertini classes 00118 case diproton: return G4Diproton::Definition(); break; 00119 case unboundPN: return G4UnboundPN::Definition(); break; 00120 case dineutron: return G4Dineutron::Definition(); break; 00121 default: 00122 G4cerr << " uups, unknown particle type " << ityp << G4endl; 00123 } 00124 00125 return 0; 00126 }
G4bool G4InuclElementaryParticle::nucleon | ( | ) | const [inline] |
Definition at line 111 of file G4InuclElementaryParticle.hh.
References G4InuclParticleNames::neutron, G4InuclParticleNames::proton, and type().
Referenced by G4ElementaryParticleCollider::collide(), G4NucleiModel::generateParticleFate(), G4IntraNucleiCascader::processTrappedParticle(), and G4NucleiModel::worthToPropagate().
00111 { return (type()==G4InuclParticleNames::proton || 00112 type()==G4InuclParticleNames::neutron); }
G4InuclElementaryParticle & G4InuclElementaryParticle::operator= | ( | const G4InuclElementaryParticle & | right | ) |
Definition at line 206 of file G4InuclElementaryParticle.cc.
References G4InuclParticle::operator=().
00206 { 00207 G4InuclParticle::operator=(right); 00208 return *this; 00209 }
G4bool G4InuclElementaryParticle::pion | ( | ) | const [inline] |
Definition at line 107 of file G4InuclElementaryParticle.hh.
References G4InuclParticleNames::pionMinus, G4InuclParticleNames::pionPlus, G4InuclParticleNames::pionZero, and type().
Referenced by G4ElementaryParticleCollider::collide().
00107 { return (type()==G4InuclParticleNames::pionPlus || 00108 type()==G4InuclParticleNames::pionMinus || 00109 type()==G4InuclParticleNames::pionZero); }
void G4InuclElementaryParticle::print | ( | std::ostream & | os | ) | const [virtual] |
Reimplemented from G4InuclParticle.
Definition at line 225 of file G4InuclElementaryParticle.cc.
References G4endl, G4InuclParticle::getDefinition(), G4InuclParticle::getKineticEnergy(), G4InuclParticle::getMass(), G4ParticleDefinition::GetParticleName(), G4InuclParticle::print(), and type().
00225 { 00226 G4InuclParticle::print(os); 00227 os << G4endl << " Particle: " << getDefinition()->GetParticleName() 00228 << " type " << type() << " mass " << getMass() 00229 << " ekin " << getKineticEnergy(); 00230 }
G4bool G4InuclElementaryParticle::quasi_deutron | ( | ) | const [inline] |
Definition at line 126 of file G4InuclElementaryParticle.hh.
References type().
Referenced by G4ElementaryParticleCollider::collide(), G4NucleiModel::generateParticleFate(), and G4CascadeInterface::makeDynamicParticle().
00126 { return (type() > 100); }
void G4InuclElementaryParticle::setType | ( | G4int | ityp | ) |
Definition at line 174 of file G4InuclElementaryParticle.cc.
References makeDefinition(), and G4InuclParticle::setDefinition().
00174 { 00175 setDefinition(makeDefinition(ityp)); 00176 }
G4int G4InuclElementaryParticle::type | ( | const G4ParticleDefinition * | pd | ) | [static] |
Definition at line 130 of file G4InuclElementaryParticle.cc.
References G4InuclParticleNames::alpha, G4InuclParticleNames::antiAlpha, G4InuclParticleNames::antiDeuteron, G4InuclParticleNames::antiHe3, G4InuclParticleNames::antiNeutron, G4InuclParticleNames::antiProton, G4InuclParticleNames::antiTriton, G4KaonZeroLong::Definition(), G4KaonZeroShort::Definition(), G4Dineutron::Definition(), G4UnboundPN::Definition(), G4Diproton::Definition(), G4AntiAlpha::Definition(), G4AntiHe3::Definition(), G4AntiTriton::Definition(), G4AntiDeuteron::Definition(), G4AntiNeutron::Definition(), G4AntiProton::Definition(), G4Alpha::Definition(), G4He3::Definition(), G4Triton::Definition(), G4Deuteron::Definition(), G4OmegaMinus::Definition(), G4XiMinus::Definition(), G4XiZero::Definition(), G4SigmaMinus::Definition(), G4SigmaZero::Definition(), G4SigmaPlus::Definition(), G4Lambda::Definition(), G4AntiKaonZero::Definition(), G4KaonZero::Definition(), G4KaonMinus::Definition(), G4KaonPlus::Definition(), G4Gamma::Definition(), G4PionZero::Definition(), G4PionMinus::Definition(), G4PionPlus::Definition(), G4Neutron::Definition(), G4Proton::Definition(), G4InuclParticleNames::deuteron, G4InuclParticleNames::dineutron, G4InuclParticleNames::diproton, G4UniformRand, G4InuclParticleNames::He3, G4InuclParticleNames::kaonMinus, G4InuclParticleNames::kaonPlus, G4InuclParticleNames::kaonZero, G4InuclParticleNames::kaonZeroBar, G4InuclParticleNames::lambda, neutron, G4InuclParticleNames::omegaMinus, photon, G4InuclParticleNames::pionMinus, G4InuclParticleNames::pionPlus, G4InuclParticleNames::pionZero, G4InuclParticleNames::proton, G4InuclParticleNames::sigmaMinus, G4InuclParticleNames::sigmaPlus, G4InuclParticleNames::sigmaZero, G4InuclParticleNames::triton, G4InuclParticleNames::unboundPN, G4InuclParticleNames::xiMinus, and G4InuclParticleNames::xiZero.
00130 { 00131 if (pd == 0) return 0; 00132 if (pd == G4Proton::Definition()) return proton; 00133 if (pd == G4Neutron::Definition()) return neutron; 00134 if (pd == G4PionPlus::Definition()) return pionPlus; 00135 if (pd == G4PionMinus::Definition()) return pionMinus; 00136 if (pd == G4PionZero::Definition()) return pionZero; 00137 if (pd == G4Gamma::Definition()) return photon; 00138 if (pd == G4KaonPlus::Definition()) return kaonPlus; 00139 if (pd == G4KaonMinus::Definition()) return kaonMinus; 00140 if (pd == G4KaonZero::Definition()) return kaonZero; 00141 if (pd == G4AntiKaonZero::Definition()) return kaonZeroBar; 00142 if (pd == G4Lambda::Definition()) return lambda; 00143 if (pd == G4SigmaPlus::Definition()) return sigmaPlus; 00144 if (pd == G4SigmaZero::Definition()) return sigmaZero; 00145 if (pd == G4SigmaMinus::Definition()) return sigmaMinus; 00146 if (pd == G4XiZero::Definition()) return xiZero; 00147 if (pd == G4XiMinus::Definition()) return xiMinus; 00148 if (pd == G4OmegaMinus::Definition()) return omegaMinus; 00149 // NOTE: The four light nuclei "particles" are actually G4Ions 00150 if (pd == G4Deuteron::Definition()) return deuteron; 00151 if (pd == G4Triton::Definition()) return triton; 00152 if (pd == G4He3::Definition()) return He3; 00153 if (pd == G4Alpha::Definition()) return alpha; 00154 if (pd == G4AntiProton::Definition()) return antiProton; 00155 if (pd == G4AntiNeutron::Definition()) return antiNeutron; 00156 // NOTE: The the four light antinuclei "particles" are actually G4Ions 00157 if (pd == G4AntiDeuteron::Definition()) return antiDeuteron; 00158 if (pd == G4AntiTriton::Definition()) return antiTriton; 00159 if (pd == G4AntiHe3::Definition()) return antiHe3; 00160 if (pd == G4AntiAlpha::Definition()) return antiAlpha; 00161 // NOTE: The three unbound dibaryons are local Bertini classes 00162 if (pd == G4Diproton::Definition()) return diproton; 00163 if (pd == G4UnboundPN::Definition()) return unboundPN; 00164 if (pd == G4Dineutron::Definition()) return dineutron; 00165 00166 // Weak neutral kaons must be mixed back to strong (strangeness states) 00167 if (pd==G4KaonZeroShort::Definition() || pd==G4KaonZeroLong::Definition()) { 00168 return ((G4UniformRand() > 0.5) ? kaonZero : kaonZeroBar); 00169 } 00170 00171 return 0; // Unknown objects return zero (e.g., nuclei) 00172 }
G4int G4InuclElementaryParticle::type | ( | ) | const [inline] |
Definition at line 101 of file G4InuclElementaryParticle.hh.
References G4InuclParticle::getDefinition().
Referenced by G4CollisionOutput::addOutgoingParticles(), antinucleon(), G4IntraNucleiCascader::copyWoundedNucleus(), G4CascadeInterface::createBullet(), G4IntraNucleiCascader::decayTrappedParticle(), G4NucleiModel::generateParticleFate(), getStrangeness(), G4CascadeInterface::IsApplicable(), isPhoton(), G4CascadeInterface::makeDynamicParticle(), nucleon(), pion(), print(), G4IntraNucleiCascader::processSecondary(), G4IntraNucleiCascader::processTrappedParticle(), quasi_deutron(), valid(), and G4NucleiModel::worthToPropagate().
00101 { return type(getDefinition()); }
G4bool G4InuclElementaryParticle::valid | ( | ) | const [inline] |
Definition at line 130 of file G4InuclElementaryParticle.hh.
References type().
00130 { return type()>0; }