conservation_rules¶
Collection of quantum number conservation rules for particle reactions.
Contains: - Functors for quantum number condition checks.
-
class
BaryonNumberConservation
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Decorated via
additive_quantum_number_rule
.Check for BaryonNumber conservation.
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, _)¶ Call self as a function.
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
class
CParityConservation
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, interaction_qns)[source]¶ Check for \(C\)-parity conservation.
Implements \(C_{in} = C_{out}\).
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
class
ChargeConservation
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Decorated via
additive_quantum_number_rule
.Check for Charge conservation.
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, _)¶ Call self as a function.
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
class
CharmConservation
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Decorated via
additive_quantum_number_rule
.Check for Charmness conservation.
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, _)¶ Call self as a function.
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
class
ClebschGordanCheckHelicityToCanonical
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, interaction_qns)[source]¶ Implement Clebsch-Gordan checks.
For \(S_1, S_2\) to \(S\) and the \(L,S\) to \(J\) coupling based on the conversion of helicity to canonical amplitude sums.
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
class
DefinedForAllEdges
[source]¶ Bases:
expertsystem.state.conservation_rules.AbstractConditionFunctor
Check if a graph has all edges defined.
-
class
DefinedForAllOutgoingEdges
[source]¶ Bases:
expertsystem.state.conservation_rules.AbstractConditionFunctor
Check if all outgoing edges are defined.
-
class
DefinedForInteractionNode
[source]¶ Bases:
expertsystem.state.conservation_rules.AbstractConditionFunctor
Check if all interaction nodes are defined.
-
class
DefinedIfOtherQnNotDefinedInOutSeparate
(other_qn_names)[source]¶ Bases:
expertsystem.state.conservation_rules.AbstractConditionFunctor
Implements logic for…
-
class
ElectronLNConservation
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Decorated via
additive_quantum_number_rule
.Check for ElectronLN conservation.
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, _)¶ Call self as a function.
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
class
GParityConservation
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, interaction_qns)[source]¶ Check for \(G\)-parity conservation.
Implements for \(G_{in} = G_{out}\).
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
class
GellMannNishijimaRule
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, _)[source]¶ Check the Gell-Mann–Nishijima formula.
\(Q=I_3+\frac{Y}{2}\) for each particle.
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
class
HelicityConservation
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, _)[source]¶ Implementation of helicity conservation.
Check for \(|\lambda_2-\lambda_3| \leq S_1\).
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
class
IdenticalParticleSymmetrization
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, _)[source]¶ Implementation of particle symmetrization.
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
class
IsoSpinConservation
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Check for isospin conservation.
Implements
\[|I_1 - I_2| \leq I \leq |I_1 + I_2|\]Also checks \(I_{1,z} + I_{2,z} = I_z\) and if Clebsch-Gordan coefficients are all 0.
Required quantum numbers:
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
class
MassConservation
(width_factor)[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Mass conservation rule.
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, _)[source]¶ Implements mass conservation.
\(M_{out} - N \cdot W_{out} < M_{in} + N \cdot W_{in}\)
It makes sure that the net mass outgoing state \(M_{out}\) is smaller than the net mass of the ingoing state \(M_{in}\). Also the width \(W\) of the states is taken into account.
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
class
MuonLNConservation
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Decorated via
additive_quantum_number_rule
.Check for MuonLN conservation.
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, _)¶ Call self as a function.
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
class
ParityConservation
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, interaction_qns)[source]¶ Implement \(P_{in} = P_{out} \cdot (-1)^L\).
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
class
ParityConservationHelicity
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, interaction_qns)[source]¶ Implements parity conservation for helicity formalism.
Check the following:
\[A_{-\lambda_1-\lambda_2} = P_1 P_2 P_3 (-1)^{S_2+S_3-S_1} A_{\lambda_1\lambda_2}\]Notice that only the special case \(\lambda_1=\lambda_2=0\) may return False.
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
class
Rule
[source]¶ Bases:
object
Interface for rules.
A
Rule
performs checks on anInteractionNode
and its attachedEdge
s. The__call__
method contains actual rule logic and has to be overwritten.For additive quantum numbers the decorator
additive_quantum_number_rule
can simplify the constrution of the appropriateRule
.Besides the rule logic itself, a
Rule
also has the responsibility of stating its run conditions. These can be separated into two categories:variable conditions
toplogical conditions
Note: currently only variable conditions are being used.
Variable conditions can easily be added to rules via the
rule_conditions
decorator.
-
class
SpinConservation
(use_projection=True)[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Check for spin conservation.
Implements
\[|S_1 - S_2| \leq S \leq |S_1 + S_2|\]and
\[|L - S| \leq J \leq |L + S|\]Also checks \(M_1 + M_2 = M\) and if Clebsch-Gordan coefficients are all 0.
Required quantum numbers:
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
class
StrangenessConservation
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Decorated via
additive_quantum_number_rule
.Check for Strangeness conservation.
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, _)¶ Call self as a function.
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
class
TauLNConservation
[source]¶ Bases:
expertsystem.state.conservation_rules.Rule
Decorated via
additive_quantum_number_rule
.Check for TauLN conservation.
Required quantum numbers:
-
__call__
(ingoing_part_qns, outgoing_part_qns, _)¶ Call self as a function.
-
check_requirements
(in_edges, out_edges, int_node)¶
-
get_required_qn_names
()¶
-
-
additive_quantum_number_rule
(quantum_number: expertsystem.state.particle.StateQuantumNumberNames)[source]¶ Class decorator for creating an additive conservation
Rule
.Use this decorator to create a conservation
Rule
for a quantum number to which an additive conservation rule applies:\[\sum q_{in} = \sum q_{out}\]- Parameters
quantum_number (StateQuantumNumberNames) – Quantum number to which you want to apply the additive conservation check.