Usage#
Main interface#
Here are some quick examples of how to use qrules
. For more fine-grained control, have a look at Advanced.
Investigate intermediate resonances#
import qrules
reaction = qrules.generate_transitions(
initial_state="J/psi(1S)",
final_state=["K0", "Sigma+", "p~"],
allowed_interaction_types="strong",
formalism="canonical-helicity",
)
import graphviz
dot = qrules.io.asdot(reaction, collapse_graphs=True)
graphviz.Source(dot)
Next, you use the ampform
package to convert these transitions into a mathematical description that you can use to fit your data and perform Partial Wave Analysis!
See also
Quantum number search#
The load_pdg()
function creates a ParticleCollection
containing the latest PDG info. Its find()
and filter()
methods allows you to quickly look up the quantum numbers of a particle and, vice versa, look up particle candidates based on a set of quantum numbers.
import qrules
pdg = qrules.load_pdg()
pdg.find(22) # by pid
pdg.find("Delta(1920)++")
Particle(
name='Delta(1920)++',
pid=22224,
latex='\\Delta(1920)^{++}',
spin=1.5,
mass=1.92,
width=0.3,
charge=2,
isospin=Spin(3/2, +3/2),
baryon_number=1,
parity=+1,
)
subset = pdg.filter(lambda p: p.spin in [2.5, 3.5, 4.5] and p.name.startswith("N"))
subset.names
['N(1675)~-',
'N(1675)0',
'N(1675)~0',
'N(1675)+',
'N(1680)~-',
'N(1680)0',
'N(1680)~0',
'N(1680)+',
'N(2190)~-',
'N(2190)0',
'N(2190)~0',
'N(2190)+']
Tip
Check allowed reactions#
qrules
can be used to check
whether a transition between an initial and final state is violated by any conservation rules:
qrules.check_reaction_violations(
initial_state="pi0",
final_state=["gamma", "gamma", "gamma"],
)
{frozenset({'c_parity_conservation'})}
Advanced#
Each of the qrules
’s sub-modules offer functionality to handle more advanced reaction types. The following notebooks illustrate how use them.