particle

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

class AbstractQNConverter[source]

Bases: abc.ABC

abstract convert_to_dict(qn_type, qn_value)[source]
abstract parse_from_dict(data_dict)[source]
class CompareGraphElementPropertiesFunctor(ignored_qn_list=[])[source]

Bases: object

__call__(props1, props2)[source]

Call self as a function.

compare_qn_numbers(qns1, qns2)[source]
class FloatQNConverter[source]

Bases: expertsystem.state.particle.AbstractQNConverter

class_label = 'Class'
convert_to_dict(qn_type, qn_value)[source]
parse_from_dict(data_dict)[source]
type_label = 'Type'
value_label = 'Value'
class IntQNConverter[source]

Bases: expertsystem.state.particle.AbstractQNConverter

class_label = 'Class'
convert_to_dict(qn_type, qn_value)[source]
parse_from_dict(data_dict)[source]
type_label = 'Type'
value_label = 'Value'
class InteractionQuantumNumberNames

Bases: enum.Enum

An enumeration.

L = 1
ParityPrefactor = 3
S = 2
class LABELS

Bases: enum.Enum

An enumeration.

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

Bases: enum.Enum

definition of quantum number names for interaction nodes

Width = 1
class ParticlePropertyNames

Bases: enum.Enum

definition of decay properties names of particles

Mass = 2
Pid = 1
class QuantumNumberClasses

Bases: enum.Enum

Definition of quantum number names for states.

Float = 2
Int = 1
Spin = 3
class Spin(mag, proj)[source]

Bases: object

Simple struct-like class defining spin as a magnitude plus the projection

__eq__(other)[source]

define the equal operator for the spin class, which is needed for equality checks of states in certain rules

magnitude()[source]
projection()[source]
class SpinQNConverter(parse_projection=True)[source]

Bases: expertsystem.state.particle.AbstractQNConverter

class_label = 'Class'
convert_to_dict(qn_type, qn_value)[source]
parse_from_dict(data_dict)[source]
proj_label = 'Projection'
type_label = 'Type'
value_label = 'Value'
class StateQuantumNumberNames

Bases: enum.Enum

definition of properties names of particles

BaryonNumber = 1
Bottomness = 2
Charge = 3
Charm = 4
Cparity = 5
ElectronLN = 6
Gparity = 7
IsoSpin = 8
MuonLN = 9
Parity = 10
Spin = 11
Strangeness = 12
TauLN = 13
Topness = 14
add_to_particle_list(particle)[source]

Add a particle dictionary object to the particle_list dictionary. The key will be extracted from the particle name (XML tag @Name). If the key already exists, the entry in particle_list will be overwritten by this one.

calculate_combinatorics(edges, state_particles, attached_external_edges_per_node, allowed_particle_groupings=[])[source]
check_if_spin_projections_set(state)[source]
check_qns_equal(qns_state, qns_particle)[source]
compare_qns(qn_dict, qn_dict2)[source]
create_spin_domain(list_of_magnitudes, set_projection_zero=False)[source]
get_interaction_property(interaction_properties, qn_name, converter=None)[source]
get_particle_candidates_for_state(state, allowed_particle_list)[source]
get_particle_copy_by_name(particle_name)[source]

Get a deepcopy of a particle from the particle_list dictionary so you can manipulate it and add it to the particle data base.

get_particle_property(particle_properties, qn_name, converter=None)[source]
get_particle_with_name(particle_name)[source]

Deprecated since version 0.2.0: particle_list has become a dictionary, so you can already access its entries with a string index.

initialize_allowed_particle_list(allowed_particle_list)[source]
initialize_edges(graph, edge_particle_dict)[source]
initialize_external_edge_lists(attached_external_edges_per_node, edge_particle_mapping)[source]
initialize_graph(graph, initial_state, final_state, final_state_groupings)[source]
initialize_graphs_with_particles(graphs, allowed_particle_list=[])[source]
is_boson(qn_dict)[source]
load_particle_list_from_xml(file_path)[source]

Add entries to the particle_list from definitions in an XML file.

By default, the expert system loads the particle_list from the XML file particle_list.xml located in the ComPWA module. Use load_particle_list_from_xml to append to the particle_list.

Note

If a particle name in the loaded XML file already exists in the particle_list, the one in the particle_list will be overwritten.

Return type

None

load_particle_list_from_yaml(file_path)[source]

Use load_particle_list_from_yaml to append to the particle_list from a YAML file.

Note

If a particle name in the YAML file already exists in the particle_list instance, the one in particle_list will be overwritten.

Return type

None

merge_qn_props(qns_state, qns_particle)[source]
populate_edge_with_spin_projections(graph, edge_id, spin_projections)[source]
write_particle_list_to_xml(file_path)[source]

Write particle_list instance to XML file.

Return type

None

write_particle_list_to_yaml(file_path)[source]

Write particle_list instance to a YAML file.

Return type

None