pub enum RuleKind {
Show 17 variants
Parity,
Isospin,
IsospinProjection,
CParity,
GParity,
Charge,
Strangeness,
Charm,
Bottomness,
Topness,
BaryonNumber,
ElectronLeptonNumber,
MuonLeptonNumber,
TauLeptonNumber,
LeptonNumber,
IdenticalParticleSymmetry,
ConventionalMesonJpc,
}Expand description
A conservation, symmetry, or classification rule that can be applied to a two-body decay.
Variants§
Parity
Enforce intrinsic parity conservation.
For a two-body final state this checks
$P_\text{parent} = P_a P_b (-1)^L$.
Isospin
Enforce total isospin coupling.
This checks whether the two daughter isospins can couple to the parent
isospin:
$I_\text{parent} \in |I_a - I_b|, \ldots, I_a + I_b$.
IsospinProjection
Enforce conservation of the isospin projection $I_3$.
This checks $I_{3,\text{parent}} = I_{3,a} + I_{3,b}$.
CParity
Enforce charge-conjugation parity conservation when applicable.
This is only meaningful for states with a defined $C$ eigenvalue and
final states that can be interpreted as $C$ eigenstates, such as
suitable particle-antiparticle combinations.
GParity
Enforce G-parity conservation when applicable.
This is mainly useful for light-quark isospin multiplets where
$G$-parity is defined. It should not be enabled blindly for arbitrary
hadrons.
Charge
Enforce electric charge conservation.
This checks $Q_\text{parent} = Q_a + Q_b$.
Strangeness
Enforce strangeness conservation.
This checks $S_\text{parent} = S_a + S_b$.
Strong and electromagnetic interactions conserve strangeness; weak interactions generally do not.
Charm
Enforce charm conservation.
This checks $C_\text{parent} = C_a + C_b$, where $C$ here denotes
charm quantum number, not charge conjugation.
Bottomness
Enforce bottomness conservation.
This checks $B'_\text{parent} = B'_a + B'_b$, where $B'$ denotes
bottomness, not baryon number.
Topness
Enforce topness conservation.
This checks $T_\text{parent} = T_a + T_b$.
BaryonNumber
Enforce baryon-number conservation.
This checks $B_\text{parent} = B_a + B_b$.
ElectronLeptonNumber
Enforce electron-family lepton-number conservation.
This checks $L_e(\text{parent}) = L_e(a) + L_e(b)$.
MuonLeptonNumber
Enforce muon-family lepton-number conservation.
This checks $L_\mu(\text{parent}) = L_\mu(a) + L_\mu(b)$.
TauLeptonNumber
Enforce tau-family lepton-number conservation.
This checks $L_\tau(\text{parent}) = L_\tau(a) + L_\tau(b)$.
LeptonNumber
Enforce total lepton-number conservation.
This checks $L_\text{parent} = L_a + L_b$, where
$L = L_e + L_\mu + L_\tau$.
This is independent of the individual lepton-family checks. If both this and the family-specific checks are enabled, all enabled checks must pass.
IdenticalParticleSymmetry
Enforce exchange-symmetry constraints for identical final-state particles when enough information is available.
At minimum, this is useful for cases such as identical spin-zero bosons,
where only even $L$ is allowed.
ConventionalMesonJpc
Optional diagnostic/classification rule, not part of strong-decay conservation.
Trait Implementations§
impl Copy for RuleKind
Source§impl<'de> Deserialize<'de> for RuleKind
impl<'de> Deserialize<'de> for RuleKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for RuleKind
Source§impl Ord for RuleKind
impl Ord for RuleKind
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for RuleKind
impl PartialOrd for RuleKind
impl StructuralPartialEq for RuleKind
Auto Trait Implementations§
impl Freeze for RuleKind
impl RefUnwindSafe for RuleKind
impl Send for RuleKind
impl Sync for RuleKind
impl Unpin for RuleKind
impl UnsafeUnpin for RuleKind
impl UnwindSafe for RuleKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.