`StateTransitionManager.find_solutions()` crashes on certain allowed intermediate particles
Closed this issue · 1 comments
redeboer commented
Bug description
StateTransitionManager.find_solutions
crashes on certain allowed_intermediate_particles
.
How to reproduce?
from expertsystem.reaction import StateTransitionManager, InteractionTypes
stm = StateTransitionManager(
initial_state=[("Y(4260)", [-1, +1])],
final_state=["D0", "D~0", "pi0", "pi0"],
allowed_intermediate_particles=["D"], # <--- HERE
number_of_threads=1,
)
stm.set_allowed_interaction_types([InteractionTypes.Strong])
stm.add_final_state_grouping([["D0", "pi0"], ["D~0", "pi0"]])
problem_sets = stm.create_problem_sets()
result = stm.find_solutions(problem_sets) # exception
Note: same behaviour if you use: ["D(0)", "D(2)", "D*"]
Expected behavior
The weird thing is that this does not happen if you select "D*"
(D star):
stm = StateTransitionManager(
initial_state=[("Y(4260)", [-1, +1])],
final_state=["D0", "D~0", "pi0", "pi0"],
allowed_intermediate_particles=["D*"], # <--- HERE
number_of_threads=1,
)
stm.set_allowed_interaction_types([InteractionTypes.Strong])
stm.add_final_state_grouping([["D0", "pi0"], ["D~0", "pi0"]])
problem_sets = stm.create_problem_sets()
result = stm.find_solutions(problem_sets)
len(result.transitions) # 14
but neither if you take any particle:
stm = StateTransitionManager(
initial_state=[("Y(4260)", [-1, +1])],
final_state=["D0", "D~0", "pi0", "pi0"],
# <--- NOTHING HERE
number_of_threads=1,
)
stm.set_allowed_interaction_types([InteractionTypes.Strong])
stm.add_final_state_grouping([["D0", "pi0"], ["D~0", "pi0"]])
problem_sets = stm.create_problem_sets()
result = stm.find_solutions(problem_sets)
len(result.transitions) # 76
I would say the latter should give the expected result.
System info
Should happen on any system. Tried it on both 0.6.9 (ed932d7) and master
(1caa526).
spflueger commented
And whats the precise error message?