particle
particle¶
import qrules.particle
A collection of particle info containers.
The particle
module is the starting point of qrules
. Its main
interface is the ParticleCollection
, which is a collection of immutable
Particle
instances that are uniquely defined by their properties. As such, it
can be used stand-alone as a database of quantum numbers (see
Particle database).
The transition
module uses the properties of Particle
instances when it
computes which StateTransitionGraph
s are allowed between an initial state
and final state.
- class Spin(magnitude: SupportsFloat, projection: SupportsFloat)[source]¶
Bases:
object
Safe, immutable data container for spin with projection.
- class Particle(*, name: str, pid: int, latex: Optional[str] = None, spin, mass, width=0.0, charge: int = 0, isospin: Optional[Union[Spin, Tuple[float, float]]] = None, strangeness: int = 0, charmness: int = 0, bottomness: int = 0, topness: int = 0, baryon_number: int = 0, electron_lepton_number: int = 0, muon_lepton_number: int = 0, tau_lepton_number: int = 0, parity: Optional[Union[Parity, int]] = None, c_parity: Optional[Union[Parity, int]] = None, g_parity: Optional[Union[Parity, int]] = None)[source]¶
Bases:
object
Immutable container of data defining a physical particle.
A
Particle
is defined by the minimum set of the quantum numbers that every possible instances of that particle have in common (the “static” quantum numbers of the particle). A “non-static” quantum number is the spin projection. HenceParticle
instances do not contain spin projection information.Particle
instances are uniquely defined by their quantum numbers and properties likemass
. Thename
andpid
are therefore just labels that are not taken into account when checking if twoParticle
instances are equal.Note
As opposed to classes such as
EdgeQuantumNumbers
andNodeQuantumNumbers
, theParticle
class serves as an interface to the user (see Particle database).- isospin: Optional[qrules.particle.Spin]¶
- parity: Optional[qrules.quantum_numbers.Parity]¶
- c_parity: Optional[qrules.quantum_numbers.Parity]¶
- g_parity: Optional[qrules.quantum_numbers.Parity]¶
- class ParticleCollection(particles: Optional[Iterable[Particle]] = None)[source]¶
Bases:
MutableSet
Searchable collection of immutable
Particle
instances.- discard(value: Union[Particle, str]) None [source]¶
Remove an element. Do not raise an exception if absent.
- filter(function: Callable[[Particle], bool]) ParticleCollection [source]¶
Search by
Particle
properties using alambda
function.For example:
>>> from qrules.particle import load_pdg >>> pdg = load_pdg() >>> subset = pdg.filter( ... lambda p: p.mass > 1.8 ... and p.mass < 2.0 ... and p.spin == 2 ... and p.strangeness == 1 ... ) >>> sorted(list(subset.names)) ['K(2)(1820)+', 'K(2)(1820)0', 'K(2)*(1980)+', 'K(2)*(1980)0']
- create_particle(template_particle: Particle, name: Optional[str] = None, latex: Optional[str] = None, pid: Optional[int] = None, mass: Optional[float] = None, width: Optional[float] = None, charge: Optional[int] = None, spin: Optional[float] = None, isospin: Optional[Spin] = None, strangeness: Optional[int] = None, charmness: Optional[int] = None, bottomness: Optional[int] = None, topness: Optional[int] = None, baryon_number: Optional[int] = None, electron_lepton_number: Optional[int] = None, muon_lepton_number: Optional[int] = None, tau_lepton_number: Optional[int] = None, parity: Optional[int] = None, c_parity: Optional[int] = None, g_parity: Optional[int] = None) Particle [source]¶
- create_antiparticle(template_particle: Particle, new_name: Optional[str] = None, new_latex: Optional[str] = None) Particle [source]¶
- load_pdg() ParticleCollection [source]¶
Create a
ParticleCollection
with all entries from the PDG.PDG info is imported from the scikit-hep/particle package.