particle

Collection of data structures and functions for particle information.

This module defines a particle as a collection of quantum numbers and things related to this.

class AbstractQNConverter[source]

Bases: abc.ABC

Abstract interface for a quantum number converter.

abstract convert_to_dict(qn_type: Union[expertsystem.state.particle.InteractionQuantumNumberNames, expertsystem.state.particle.StateQuantumNumberNames], qn_value: Any) → Dict[str, Any][source]
abstract parse_from_dict(data_dict: Dict[str, Any]) → Any[source]
class CompareGraphElementPropertiesFunctor(ignored_qn_list: Optional[List[Union[expertsystem.state.particle.StateQuantumNumberNames, expertsystem.state.particle.InteractionQuantumNumberNames]]] = None)[source]

Bases: object

Functor for comparing graph elements.

__call__(props1: Dict[int, Dict[str, List[Dict[str, Any]]]], props2: Dict[int, Dict[str, List[Dict[str, Any]]]])bool[source]

Call self as a function.

compare_qn_numbers(qns1: List[Dict[str, Any]], qns2: List[Dict[str, Any]])bool[source]
class InteractionQuantumNumberNames(value)[source]

Bases: enum.Enum

Definition of quantum number names for interaction nodes.

L = 1
ParityPrefactor = 3
S = 2
class Labels(value)[source]

Bases: enum.Enum

Labels that are useful in the particle module.

Class = 1
Component = 2
DecayInfo = 3
Name = 4
Parameter = 5
Pid = 6
PreFactor = 7
Projection = 8
QuantumNumber = 9
Type = 10
Value = 11
class ParticleDecayPropertyNames(value)[source]

Bases: enum.Enum

Definition of decay properties names of particles.

Width = 1
class ParticlePropertyNames(value)[source]

Bases: enum.Enum

Definition of properties names of particles.

Mass = 2
Pid = 1
class QuantumNumberClasses(value)[source]

Bases: enum.Enum

Types of quantum number classes in the form of an enumerate.

Float = 2
Int = 1
Spin = 3
class StateQuantumNumberNames(value)[source]

Bases: enum.Enum

Definition of quantum number names for states.

BaryonNumber = 1
Bottomness = 2
CParity = 5
Charge = 3
Charmness = 4
ElectronLN = 6
GParity = 7
IsoSpin = 8
MuonLN = 9
Parity = 10
Spin = 11
Strangeness = 12
TauLN = 13
Topness = 14
create_spin_domain(list_of_magnitudes: List[float], set_projection_zero: bool = False) → List[expertsystem.data.Spin][source]
filter_particles(particle_db: expertsystem.data.ParticleCollection, allowed_particle_names: List[str]) → List[Dict[str, Any]][source]

Filters ParticleCollection based on the allowed particle names.

Note this function currently also converts back to dict structures, which are still used internally by the propagation code.

get_interaction_property(interaction_properties: Dict[str, Any], qn_name: Union[expertsystem.state.particle.InteractionQuantumNumberNames, expertsystem.state.particle.StateQuantumNumberNames], converter: Optional[expertsystem.state.particle.AbstractQNConverter] = None) → Optional[Dict[str, Any]][source]
get_particle_candidates_for_state(state: Dict[str, List[Dict[str, Any]]], allowed_particle_list: List[Dict[str, Any]]) → List[Dict[str, Any]][source]
get_particle_property(particle_properties: Dict[str, Any], qn_name: Union[expertsystem.state.particle.ParticleDecayPropertyNames, expertsystem.state.particle.ParticlePropertyNames, expertsystem.state.particle.StateQuantumNumberNames], converter: Optional[expertsystem.state.particle.AbstractQNConverter] = None) → Optional[Dict[str, Any]][source]
initialize_graph(empty_topology: expertsystem.topology.StateTransitionGraph, particles: expertsystem.data.ParticleCollection, initial_state: List[Union[str, Tuple[str, List[float]]]], final_state: List[Union[str, Tuple[str, List[float]]]], final_state_groupings: Optional[List[List[str]]] = None) → List[expertsystem.topology.StateTransitionGraph][source]
initialize_graphs_with_particles(graphs: List[expertsystem.topology.StateTransitionGraph], allowed_particle_list: List[Dict[str, Any]]) → List[expertsystem.topology.StateTransitionGraph][source]
is_boson(qn_dict: Dict[expertsystem.state.particle.StateQuantumNumberNames, Any])bool[source]