transition#
import qrules.transition
Find allowed transitions between an initial and final state.
- SpinFormalism#
Name for the spin formalism to be used.
The options
"helicity","canonical-helicity", and"canonical"are all used for the helicity formalism, but"canonical-helicity"and"canonical"generate angular momentum and coupled spins as well on the interaction nodes.alias of
Literal[‘helicity’, ‘canonical-helicity’, ‘canonical’]
- class ExecutionInfo(not_executed_node_rules: dict[int, set[str]] = NOTHING, violated_node_rules: dict[int, set[str]] = NOTHING, not_executed_edge_rules: dict[int, set[str]] = NOTHING, violated_edge_rules: dict[int, set[str]] = NOTHING)[source]#
Bases:
object- extend(other_result: ExecutionInfo, intersect_violations: bool = False) None[source]#
- class ProblemSet(topology: Topology, initial_facts: InitialFacts, solving_settings: GraphSettings)[source]#
Bases:
objectParticle reaction problem set as a graph-like data structure.
- initial_facts: InitialFacts[source]#
Information about the initial and final state.
- solving_settings: GraphSettings[source]#
Solving settings, such as conservation rules and QN-domains.
- to_qn_problem_set() QNProblemSet[source]#
- class StateTransitionManager(initial_state: Sequence[StateDefinitionInput], final_state: Sequence[StateDefinitionInput], particle_db: ParticleCollection | None = None, allowed_intermediate_particles: list[str] | None = None, interaction_type_settings: dict[InteractionType, tuple[EdgeSettings, NodeSettings]] | None = None, formalism: SpinFormalism = 'helicity', topology_building: str = 'isobar', solving_mode: SolvingMode = SolvingMode.FAST, reload_pdg: bool = False, mass_conservation_factor: float | None = 3.0, max_angular_momentum: int = 1, max_spin_magnitude: float = 2, number_of_threads: int | None = None)[source]#
Bases:
objectMain handler for decay topologies.
See also
- interaction_determinators: list[InteractionDeterminator][source]#
Checks that are executed over selected conservation rules.
See also
{ref}`usage/reaction:Select interaction types`
- filter_remove_qns: set[type[l_magnitude | l_projection | s_magnitude | s_projection | parity_prefactor]][source]#
- filter_ignore_qns: set[type[l_magnitude | l_projection | s_magnitude | s_projection | parity_prefactor]][source]#
- topologies: tuple[Topology, ...][source]#
Topologyinstances over which the STM propagates quantum numbers.
- set_allowed_intermediate_particles(name_patterns: Iterable[str] | str, regex: bool = False) None[source]#
- get_allowed_interaction_types() list[InteractionType] | dict[int, list[InteractionType]][source]#
- get_allowed_interaction_types(node_id: int) list[InteractionType]
- set_allowed_interaction_types(allowed_interaction_types: Iterable[InteractionType], node_id: int | None = None) None[source]#
- find_solutions(problem_sets: dict[float, list[ProblemSet]]) ReactionInfo[source]#
Check for solutions for a specific set of interaction settings.
- StateTransition#
Transition of some initial
Stateto a finalState.alias of
FrozenTransition[State,InteractionProperties]
- class ReactionInfo(transitions: Iterable[StateTransition], formalism: SpinFormalism)[source]#
Bases:
objectOrdered collection of
StateTransitioninstances.- transitions: tuple[StateTransition, ...][source]#
- formalism: SpinFormalism[source]#
- initial_state: FrozenDict[int, Particle][source]#
- final_state: FrozenDict[int, Particle][source]#
- get_intermediate_particles() ParticleCollection[source]#
Extract the names of the intermediate state particles.