Corpuscles.jl

A Julia package to get access to the PDG particle data.

Corpuscles.PDGIDType

PDG IDs consist of 7 digits prefixed by a sign, following the scheme:

+/- N Nr Nl Nq1 Nq2 Nq3 Nj

Those are accessible as fields. There are PDG IDs with more than 7 digits for non-standard particles such as Q-balls. To support those, we follow the implementation in the SciKit-HEP particle Python package, which introduced N8, N9 and N10.

source
Corpuscles.ParticleType
Particle(name::String)

Construct particles from PDG name.

Or commonly alias, alias do not cover all particles.

source
Corpuscles.AMethod
A(p::Union{Particle, PDGID, Integer})

Returns the atomic number A if the PDG ID corresponds to a nucleus, else it returns nothing.

source
Corpuscles.JMethod
J(p::Union{Particle, PDGID, Integer})

Returns the total spin J.

source
Corpuscles.LMethod
L(p::Union{Particle, PDGID, Integer})

Returns the orbital angular momentum L.

This is valid for mesons only. nothing is returned otherwise. Mesons with PDGIDs of the kind 9XXXXXX (N=9) are not experimentally well-known particles and nothing is returned too.

source
Corpuscles.SMethod
S(p::Union{Particle, PDGID, Integer})

Returns the spin S.

This is valid for mesons only. nothing is returned otherwise. Mesons with PDGIDs of the kind 9XXXXXX (N=9) are not experimentally well-known particles and nothing is returned too.

source
Corpuscles.ZMethod
Z(p::Union{Particle, PDGID, Integer})

Returns the charge Z if the PDG ID corresponds to a nucleus, else it returns nothing.

source
Corpuscles._generatenameMethod
_generatename(name, pdgid, antiprop, charge)

Generate a name for the particle, adding tilde if anti and -/+ according to the charge.

source
Corpuscles._hasquarkMethod
_hasquark(p:::Union{Particle, PDGID, Integer}, q::Integer)

Note that q is always positive, so [1, 6] for Standard Model quarks and [7, 8] for fourth-generation quarks.

source
Corpuscles.available_catalog_filesMethod
available_catalog_files()

Function to get the available catalog files which are available within the package and returns a list with the absolute filepaths.

Examples

julia> Corpuscles.available_catalog_files()
["/home/foobar/dev/Corpuscles.jl/data/particle2019.csv"]
source
Corpuscles.hasfundamentalantiMethod
hasfundamentalanti(p::Union{Particle, PDGID, Integer})

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

Notes

Based on the current list of defined particles/concepts in the PDG Monte Carlo Particle Numbering Scheme document.

source
Corpuscles.isQballMethod
isQball(p::Union{Particle, PDGID, Integer})

Does this PDG ID correspond to a Q-ball or any exotic particle with electric charge beyond the qqq scheme? Ad-hoc numbering for such particles is +/- 100XXXY0, where XXX.Y is the charge.

source
Corpuscles.isRhadronMethod
isRhadron(p::Union{Particle, PDGID, Integer})

An R-hadron is of the form 10abcdj, 100abcj, or 1000abj, where j = 2J + 1 gives the spin; b, c, and d are quarks or gluons; and a (the digit following the zero's) is a SUSY particle.

source
Corpuscles.isSUSYMethod
isSUSY(p::Union{Particle, PDGID, Integer})

Fundamental SUSY particles have N = 1 or 2.

source
Corpuscles.isdyonMethod
isdyon(p::Union{Particle, PDGID, Integer})

Magnetic monopoles and Dyons are assumed to have one unit of Dirac monopole charge and a variable integer number xyz units of electric charge, where xyz stands for Nq1 Nq2 Nq3. Codes 411xyz0 are 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.

source
Corpuscles.isgeneratorspecificMethod
isgeneratorspecific(p::Union{Particle, PDGID, Integer})

Codes 81-100 are reserved for generator-specific pseudoparticles and concepts. Codes 901-930, 1901-1930, 2901-2930, and 3901-3930 are for additional components of Standard Model parton distribution functions, where the latter three ranges are intended to distinguish left/right/longitudinal components. Codes 998 and 999 are reserved for GEANT tracking purposes.

source
Corpuscles.isnucleusMethod
isnucleus(p::Union{Particle, PDGID, Integer})

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.

source
Corpuscles.ispentaquarkMethod
ispentaquark(p::Union{Particle, PDGID, Integer})

Pentaquark IDs are of the form +/- 9 Nr Nl Nq1 Nq2 Nq3 Nj, where Nj = 2J + 1 gives the spin and Nr Nl Nq1 Nq2 Nq3 denote the quark numbers in order Nr >= Nl >= Nq1 >= Nq2 and Nq3 gives the antiquark number.

source
Corpuscles.isspecialMethod
isspecial(p::Union{Particle, PDGID, Integer})

Special particle in the sense of the classification in the PDG MC particle numbering scheme document, hence the graviton, the DM (S = 0, 1/2, 1) particles, the reggeons (reggeon, pomeron and odderon), and all generator-specific pseudo-particles and concepts, see isgeneratorspecific.

source
Corpuscles.isstandardMethod
isstandard(p::Union{Particle, PDGID, Integer})

Returns true if the PDG ID of the particle follows the standard numbering scheme.

source
Corpuscles.lspinMethod
lspin(p::Union{Particle, PDGID, Integer})

Returns the orbital angular momentum L as 2S+1.

This is valid for mesons only. nothing is returned otherwise. Mesons with PDGIDs of the kind 9XXXXXX (N=9) are not experimentally well-known particles and nothing is returned too.

source
Corpuscles.sspinMethod
sspin(p::Union{Particle, PDGID, Integer})

Returns the spin S as 2S+1.

This is valid for mesons only. nothing is returned otherwise. Mesons with PDGIDs of the kind 9XXXXXX (N=9) are not experimentally well-known particles and nothing is returned too.

source
Corpuscles.use_catalog_fileMethod
use_catalog_file(filepath)

This function reads a given catalog file and sets it as reference

Arguments

  • filepath::AbstractString: filepath to the catalog file

Examples

julia> Corpuscles.use_catalog_file("/home/foobar/dev/Corpuscles.jl/data/particle2019.csv")
source