Welcome to QRules!¶
QRules is a system for validating and generating particle reactions, using quantum number conservation rules. The user only has to provide a basic information of the particle reaction, such as an initial state and a final state. Helper functions provide easy ways to configure the system, but the user still has full control. QRules then constructs several hypotheses for what happens during the transition from initial to final state.
Original project: PWA Expert System
The original project was the Welcome to the PWA Expert System!. QRules originates from
its ~expertsystem.reaction
module.
Internal design¶
Internally, QRules consists of three major components.
1. State Transition Graphs¶
A StateTransitionGraph
is a
directed graph that consists of
nodes and edges. In a directed graph, each edge must be connected to at
least one node (in correspondence to Feynman graphs). This way, a graph
describes the transition from one state to another.
The edges correspond to particles/states, in other words a collection of properties such as the quantum numbers that characterize the particle state.
Each node represents an interaction and contains all information for the transition of this specific step. Most importantly, a node contains a collection of conservation rules that have to be satisfied. An interaction node has \(M\) ingoing lines and \(N\) outgoing lines, where \(M,N \in \mathbb{Z}\), \(M > 0, N > 0\).
2. Conservation Rules¶
The central component of the expert system are the
conservation rules
. They belong to individual
nodes and receive properties about the node itself, as well as properties of
the ingoing and outgoing edges of that node. Based on those properties the
conservation rules determine whether edges pass or not.
3. Solvers¶
The determination of the correct state properties in the graph is done by solvers. New properties are set for intermediate edges and interaction nodes and their validity is checked with the conservation rules.
QRules workflow¶
Preparation
1.1. Build all possible topologies. A topology is represented by a graph, in which the edges and nodes are empty (no particle information).
1.2. Fill the topology graphs with the user provided information. Typically these are the graph’s ingoing edges (initial state) and outgoing edges (final state).
Solving
2.1. Propagate quantum number information through the complete graph while respecting the specified conservation laws. Information like mass is not used in this first solving step.
2.2. Clone graphs while inserting concrete matching particles for the intermediate edges (mainly adds the mass variable).
2.3. Validate the complete graphs, so run all conservation law check that were postponed from the first step.