# Simulation utilities (skhep.simulation)

Module for simulation utilities.

## Module for PDG ID methods

Scikit-HEP simply wraps the functionality provided by the [PyPDT] package to access in Python what is otherwise provided by the HepPID package in C++. HepPID translates the standard PDG numbering scheme.

All methods from PyPDT applicable to the PDG particle identification codes, a.k.a. PDG IDs, are available.

Functions available:

[‘isValid’, ‘charge’, ‘threeCharge’, ‘jSpin’, ‘lSpin’, ‘sSpin’, ‘hasFundamentalAnti’, ‘hasDown’, ‘hasUp’, ‘hasStrange’, ‘hasCharm’, ‘hasBottom’, ‘hasTop’, ‘isLepton’, ‘isHadron’, ‘isBaryon’, ‘isMeson’, ‘isNucleus’, ‘isDiQuark’, ‘isDyon’, ‘isPentaquark’, ‘isQBall’, ‘isRhadron’, ‘isSUSY’, ‘ionA’, ‘ionNlambda’, ‘ionZ’]

Standard use case:

      >>> from skhep.simulation import pdgid
      >>> pdgid.isLepton(11)
      True
      >>> pdgid.charge(-4444)  # anti Omega_ccc^++
      -2.0

References

[PyPDT] | https://pypi.python.org/pypi/PyPDT.

`skhep.simulation.pdgid.``isValid`(pid)

  Check to see if this is a valid PID

`skhep.simulation.pdgid.``charge`(pid)

  The actual charge

`skhep.simulation.pdgid.``threeCharge`(pid)

  3 times the charge (so that it can always be returned as an int)

`skhep.simulation.pdgid.``jSpin`(pid)

  Returns 2J+1, where J is the total angular momentum.

`skhep.simulation.pdgid.``lSpin`(pid)

  Returns 2L+1, where L is the orbital angular momentum

`skhep.simulation.pdgid.``sSpin`(pid)

  Returns 2S+1, where S is the spin.

`skhep.simulation.pdgid.``hasFundamentalAnti`(pid)

  If this is a fundamental particle, does it have a valid antiparticle?

`skhep.simulation.pdgid.``hasDown`(pid)

  Does this particle contain a down quark?

`skhep.simulation.pdgid.``hasUp`(pid)

  Does this particle contain an up quark?

`skhep.simulation.pdgid.``hasStrange`(pid)

  Does this particle contain an strange quark?

`skhep.simulation.pdgid.``hasCharm`(pid)

  Does this particle contain a charm quark?

`skhep.simulation.pdgid.``hasBottom`(pid)

  Does this particle contain a bottom quark?

`skhep.simulation.pdgid.``hasTop`(pid)

  Does this particle contain a top quark? Really?!

`skhep.simulation.pdgid.``isLepton`(pid)

  Is this a valid lepton ID?

`skhep.simulation.pdgid.``isHadron`(pid)

  Is this a valid hadron ID?

`skhep.simulation.pdgid.``isBaryon`(pid)

  Check to see if this is a valid baryon

`skhep.simulation.pdgid.``isMeson`(pid)

  Check to see if this is a valid meson

`skhep.simulation.pdgid.``isNucleus`(pid)

  This implements the 2006 Monte Carlo nuclear code scheme. Ion numbers are +/- 10LZZZAAAI. AAA is A - total baryon number ZZZ is Z - total charge L is the total number of strange quarks. I is the isomer number, with I=0 corresponding to the ground state.

`skhep.simulation.pdgid.``isDiQuark`(pid)

  Check to see if this is a valid diquark

`skhep.simulation.pdgid.``isDyon`(pid)

  Is this a Dyon (magnetic monopole)?

  Magnetic monopoles and Dyons are assumed to have one unit of Dirac monopole charge and a variable integer number xyz units of electric charge.

  Codes 411xyz0 are then used when the magnetic and electrical charge sign agree and 412xyz0 when they disagree, with the overall sign of the particle set by the magnetic charge. For now no spin information is provided.

`skhep.simulation.pdgid.``isPentaquark`(pid)

  Check to see if this is a valid pentaquark.

  A pentaquark code is of the form 9abcdej, where j is the spin and a-e are quarks.

`skhep.simulation.pdgid.``isQBall`(pid)

  Check for QBalls

  The ad-hoc numbering for such particles is 100xxxx0, where xxxx is the charge in tenths.

`skhep.simulation.pdgid.``isRhadron`(pid)

  Is this an R-hadron?

  An R-hadron code is of the form 10abcdj, 100abcj, or 1000abj where j is the spin, b, c, and d are quarks or gluons, and a (the digit following the zeros) is a SUSY particle.

`skhep.simulation.pdgid.``isSUSY`(pid)

  Is this a SUSY particle? Fundamental SUSY particles have n = 1 or 2 and nr = 0.

`skhep.simulation.pdgid.``ionA`(pid)

  Get the ion A number. Ion numbers are +/- 10LZZZAAAI. Returns None if not an ion.

`skhep.simulation.pdgid.``ionNlambda`(pid)

  Get the ion nLambda number. Ion numbers are +/- 10LZZZAAAI. Returns None if not an ion.

`skhep.simulation.pdgid.``ionZ`(pid)

  Get the ion Z number. Ion numbers are +/- 10LZZZAAAI. Returns None if not an ion.