G4InuclElementaryParticle Class Reference

#include <G4InuclElementaryParticle.hh>

Inheritance diagram for G4InuclElementaryParticle:

G4InuclParticle

Public Member Functions

 G4InuclElementaryParticle ()
 G4InuclElementaryParticle (G4int ityp, Model model=DefaultModel)
 G4InuclElementaryParticle (const G4DynamicParticle &dynPart, Model model=DefaultModel)
 G4InuclElementaryParticle (const G4LorentzVector &mom, G4int ityp, Model model=DefaultModel)
 G4InuclElementaryParticle (G4double ekin, G4int ityp, Model model=DefaultModel)
 G4InuclElementaryParticle (const G4LorentzVector &mom, G4ParticleDefinition *pd, Model model=DefaultModel)
 G4InuclElementaryParticle (const G4InuclElementaryParticle &right)
G4InuclElementaryParticleoperator= (const G4InuclElementaryParticle &right)
void fill (G4int ityp, Model model=DefaultModel)
void fill (const G4LorentzVector &mom, G4int ityp, Model model=DefaultModel)
void fill (G4double ekin, G4int ityp, Model model=DefaultModel)
void fill (const G4LorentzVector &mom, G4ParticleDefinition *pd, Model model=DefaultModel)
void setType (G4int ityp)
G4int type () const
G4bool isPhoton () const
G4bool pion () const
G4bool nucleon () const
G4bool antinucleon () const
G4int baryon () const
G4bool antibaryon () const
G4bool hyperon () const
G4bool quasi_deutron () const
G4int getStrangeness () const
G4bool valid () const
virtual void print (std::ostream &os) const

Static Public Member Functions

static G4int type (const G4ParticleDefinition *pd)
static G4int getStrangeness (G4int type)
static G4double getParticleMass (G4int type)

Static Protected Member Functions

static G4ParticleDefinitionmakeDefinition (G4int ityp)

Detailed Description

Definition at line 57 of file G4InuclElementaryParticle.hh.


Constructor & Destructor Documentation

G4InuclElementaryParticle::G4InuclElementaryParticle (  )  [inline]

Definition at line 59 of file G4InuclElementaryParticle.hh.

00060     : G4InuclParticle() {}

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]

Definition at line 83 of file G4InuclElementaryParticle.hh.

00084     : G4InuclParticle(right) {}


Member Function Documentation

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().

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 ( G4double  ekin,
G4int  ityp,
Model  model = DefaultModel 
)

void G4InuclElementaryParticle::fill ( const G4LorentzVector mom,
G4int  ityp,
Model  model = DefaultModel 
)

void G4InuclElementaryParticle::fill ( G4int  ityp,
Model  model = DefaultModel 
) [inline]

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); }

G4double G4InuclElementaryParticle::getParticleMass ( G4int  type  )  [static]

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 }

G4int G4InuclElementaryParticle::getStrangeness ( G4int  type  )  [static]

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().

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().

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; }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:17 2013 for Geant4 by  doxygen 1.4.7