Open
Description
In four-body decays, it becomes relevant to filter particles per intermediate state. For instance, in
from qrules.transition import StateTransitionManager
stm = StateTransitionManager(
initial_state=["B0"],
final_state=["K-", "pi+", "mu+", "mu-"],
formalism="helicity",
)
stm.add_final_state_grouping([["K-", "pi+"], ["mu+", "mu-"]])
stm.set_allowed_intermediate_particles(r"^(J/psi\(1S\)|f\(0\).*)$", regex=True)
problem_sets = stm.create_problem_sets()
reaction4body_full = stm.find_solutions(problem_sets)
src = qrules.io.asdot(reaction4body_full, collapse_graphs=True)
graphviz.Source(src)
For now, the only way to avoid this, is to construct a new ReactionInfo
object from filtered transition objects, e.g.:
REACTION4BODY = qrules.ReactionInfo(
transitions=tuple(
transition
for transition in reaction4body_full.transitions
if transition.states[4].particle.name == "J/psi(1S)"
),
formalism=reaction4body_full.formalism,
)
src = qrules.io.asdot(REACTION4BODY, collapse_graphs=True)
graphviz.Source(src)