Open redeboer opened 1 month ago
In four-body decays, it becomes relevant to filter particles per intermediate state. For instance, in $B_0 \to \left(J/\psi\to\mu^-\mu^+\right) \pi^+ K^-$, it finds $J/\psi$ in both subsystems:
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.:
ReactionInfo
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)
In four-body decays, it becomes relevant to filter particles per intermediate state. For instance, in $B_0 \to \left(J/\psi\to\mu^-\mu^+\right) \pi^+ K^-$, it finds $J/\psi$ in both subsystems:
For now, the only way to avoid this, is to construct a new
ReactionInfo
object from filtered transition objects, e.g.: