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, qn_value)[source]
abstract parse_from_dict(data_dict)[source]
class CompareGraphElementPropertiesFunctor(ignored_qn_list=None)[source]

Bases: object

Functor for comparing graph elements.

__call__(props1, props2)[source]

Call self as a function.

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

Bases: expertsystem.state.particle.AbstractQNConverter

Interface for converting float quantum numbers.

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

Interface for converting int quantum numbers.

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[source]

Bases: enum.Enum

Definition of quantum number names for interaction nodes.

L = 1
ParityPrefactor = 3
S = 2
class Labels[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[source]

Bases: enum.Enum

Definition of decay properties names of particles.

Width = 1
class ParticlePropertyNames[source]

Bases: enum.Enum

Definition of properties names of particles.

Mass = 2
Pid = 1
class QuantumNumberClasses[source]

Bases: enum.Enum

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

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

Bases: object

Simple struct-like class defining spin as magnitude plus projection.

__eq__(other)[source]

Return self==value.

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

Bases: expertsystem.state.particle.AbstractQNConverter

Interface for converting Spin quantum numbers.

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[source]

Bases: enum.Enum

Definition of quantum number names for states.

BaryonNumber = 1
Bottomness = 2
CParity = 5
Charge = 3
Charm = 4
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 database dictionary.

The key will be extracted from the particle name (XML tag @Name). If the key already exists, the entry in particle database will be overwritten by this one.

calculate_combinatorics(edges, state_particles, attached_external_edges_per_node, allowed_particle_groupings=None)[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 database.

This is useful when you want to manipulate that copy and add it as a new entry to the particle data base.

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

Get particle from the particle database by name.

Deprecated since version 0.2.0: particle database 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=None)[source]
is_boson(qn_dict)[source]
load_particle_list_from_xml(file_path)[source]

Add entries to the particle database from definitions in an XML file.

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

Note

If a particle name in the loaded XML file already exists in the particle database, the one in the particle database 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 database.

Note

If a particle name in the YAML file already exists in the particle database instance, the one in particle database 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 database instance to XML file.

Return type

None

write_particle_list_to_yaml(file_path)[source]

Write particle database instance to a YAML file.

Return type

None