Skip to content

Instantly share code, notes, and snippets.

@pmoura
Last active March 17, 2020 00:48
Show Gist options
  • Save pmoura/6b1082da792306d24887e2e11c64e18b to your computer and use it in GitHub Desktop.
Save pmoura/6b1082da792306d24887e2e11c64e18b to your computer and use it in GitHub Desktop.
Logtalk version of particles.pl
:- object(particle).
% common properties to all particles
:- public([
boson/0, fermion/0,
mass/1, spin/1, lifetime/1, charge/1
]).
:- end_object.
% LEPTONS
:- object(lepton, extends(particle)).
% common properties to all leptons
:- public([
baryon_number/1,
l_e/1,
l_mu/1,
l_tau/1,
strangeness/1,
charge/1
]).
fermion.
:- end_object.
:- object(electron, extends(lepton)).
mass(0.511).
baryon_number(1).
l_e(1).
l_mu(0).
l_tau(0).
strangeness(0).
charge(-1).
spin(1/2).
lifetime('Stable').
:- end_object.
:- object(positron, extends(lepton)).
mass(0.511).
baryon_number(1).
l_e(1).
l_mu(0).
l_tau(0).
strangeness(0).
charge(1).
spin(1/2).
lifetime('Stable').
fermion.
:- end_object.
:- object(electron_neutrino, extends(lepton)).
mass(2.8E-6).
baryon_number(0).
l_e(1).
l_mu(0).
l_tau(0).
strangeness(0).
charge(0).
spin(1/2).
lifetime('Stable').
fermion.
:- end_object.
:- object(anti_electron_neutrino, extends(lepton)).
mass(2.8E-6).
baryon_number(0).
l_e(1).
l_mu(0).
l_tau(0).
strangeness(0).
charge(0).
spin(1/2).
lifetime('Stable').
fermion.
:- end_object.
:- object(muon, extends(lepton)).
mass(105.7).
baryon_number(0).
l_e(0).
l_mu(1).
l_tau(0).
strangeness(0).
charge(-1).
spin(1/2).
lifetime(2.19E-6).
fermion.
:- end_object.
:- object(anti_muon, extends(lepton)).
mass(105.7).
baryon_number(0).
l_e(0).
l_mu(1).
l_tau(0).
strangeness(0).
charge(1).
spin(1/2).
lifetime(2.19E-6).
fermion.
:- end_object.
:- object(muon_neutrino, extends(lepton)).
mass(3.5E-6).
baryon_number(0).
l_e(0).
l_mu(1).
l_tau(0).
strangeness(0).
charge(0).
spin(1/2).
lifetime('Stable').
fermion.
:- end_object.
:- object(anti_muon_neutrino, extends(lepton)).
mass(3.5E-6).
baryon_number(0).
l_e(0).
l_mu(1).
l_tau(0).
strangeness(0).
charge(0).
spin(1/2).
lifetime('Stable').
fermion.
:- end_object.
:- object(tau, extends(lepton)).
mass(1784).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(1).
strangeness(0).
charge(-1).
spin(1/2).
lifetime(3.3E-13).
fermion.
:- end_object.
:- object(anti_tau, extends(lepton)).
mass(anti_tau, 1784).
baryon_number(anti_tau, 0).
l_e(anti_tau, 0).
l_mu(anti_tau, 0).
l_tau(anti_tau, 1).
strangeness(anti_tau, 0).
charge(anti_tau, 1).
spin(anti_tau, 1/2).
lifetime(anti_tau, 3.3E-13).
fermion(anti_tau).
:- end_object.
:- object(tau_neutrino, extends(lepton)).
mass(8.4E-6).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(1).
strangeness(0).
charge(0).
spin(1/2).
lifetime('Stable').
fermion.
:- end_object.
:- object(anti_tau_neutrino, extends(lepton)).
mass(8.4E-6).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(1).
strangeness(0).
charge(0).
spin(1/2).
lifetime('Stable').
fermion.
:- end_object.
% HADRONS
:- object(hadron, extends(particle)).
% common properties to all hadrons
fermion.
:- end_object.
% Mesons
:- object(meson, extends(hadron)).
% common properties to all mesons
:- end_object.
:- object(pion, extends(meson)).
mass(139.6).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(1).
spin(0).
lifetime(2.6E-8).
:- end_object.
:- object(anti_pion, extends(meson)).
mass(139.6).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(-1).
spin(0).
lifetime(2.6E-8).
:- end_object.
:- object(pion0, extends(meson)).
mass(135.0).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(0).
spin(0).
lifetime(0.83E-16).
:- end_object.
:- object(kaon, extends(meson)).
mass(493.7).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(1).
charge(1).
spin(0).
lifetime(1.24E-8).
:- end_object.
:- object(anti_kaon, extends(meson)).
mass(493.7).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(1).
charge(-1).
spin(0).
lifetime(1.24E-8).
:- end_object.
:- object(kaon_s0, extends(meson)).
mass(497.7).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(1).
charge(0).
spin(0).
lifetime(0.89E-10).
:- end_object.
:- object(anti_kaon_s0, extends(meson)).
mass(497.7).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(1).
charge(0).
spin(0).
lifetime(0.89E-10).
:- end_object.
:- object(kaon_l0, extends(meson)).
mass(497.7).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(1).
charge(0).
spin(0).
lifetime(5.2E-8).
:- end_object.
:- object(anti_kaon_l0, extends(meson)).
mass(497.7).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(1).
charge(0).
spin(0).
lifetime(5.2E-8).
:- end_object.
:- object(eta, extends(meson)).
mass(548.8).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(0).
spin(0).
lifetime(1E-18).
:- end_object.
:- object(eta1, extends(meson)).
mass(958).
baryon_number(0).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(0).
spin(0).
lifetime(2.2E-21).
:- end_object.
% BARYONS
:- object(baryon, extends(particle)).
% common properties to all baryons
:- end_object.
:- object(proton, extends(baryon)).
mass(938.3).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(1).
spin(1/2).
lifetime('Stable').
:- end_object.
:- object(anti_proton, extends(baryon)).
mass(938.3).
baryon_number(-1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(-1).
spin(1/2).
lifetime('Stable').
:- end_object.
:- object(neutron, extends(baryon)).
mass(939.6).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(0).
spin(1/2).
lifetime(624).
:- end_object.
:- object(anti_neutron, extends(baryon)).
mass(939.6).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(0).
spin(1/2).
lifetime(624).
:- end_object.
:- object(lambda, extends(baryon)).
mass(1115.6).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-1).
charge(0).
spin(1/2).
lifetime(2.6E-10).
:- end_object.
:- object(anti_lambda, extends(baryon)).
mass(1115.6).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-1).
charge(0).
spin(1/2).
lifetime(2.6E-10).
:- end_object.
:- object(sigma, extends(baryon)).
mass(1189.4).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-1).
charge(1).
spin(1/2).
lifetime(0.8E-10).
:- end_object.
:- object(anti_sigma, extends(baryon)).
mass(1189.4).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-1).
charge(-1).
spin(1/2).
lifetime(0.8E-10).
:- end_object.
:- object(sigma0, extends(baryon)).
mass(1192.5).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-1).
charge(0).
spin(1/2).
lifetime(6E-20).
:- end_object.
:- object(anti_sigma0, extends(baryon)).
mass(1192.5).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-1).
charge(0).
spin(1/2).
lifetime(6E-20).
:- end_object.
:- object(sigma_minus, extends(baryon)).
mass(1197.3).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-1).
charge(-1).
spin(1/2).
lifetime(1.5E-10).
:- end_object.
:- object(anti_sigma_minus, extends(baryon)).
mass(1197.3).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-1).
charge(1).
spin(1/2).
lifetime(1.5E-10).
:- end_object.
:- object(delta, extends(baryon)).
mass(1230).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(1).
spin(1/2).
lifetime(6E-24).
:- end_object.
:- object(anti_delta, extends(baryon)).
mass(1230).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(-1).
spin(1/2).
lifetime(6E-24).
:- end_object.
:- object(delta_plus, extends(baryon)).
mass(1231).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(1).
spin(1/2).
lifetime(6E-24).
:- end_object.
:- object(anti_delta_plus, extends(baryon)).
mass(1231).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(-1).
spin(1/2).
lifetime(6E-24).
:- end_object.
:- object(delta0, extends(baryon)).
mass(1232).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(0).
spin(1/2).
lifetime(6E-24).
:- end_object.
:- object(anti_delta0, extends(baryon)).
mass(1232).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(0).
spin(1/2).
lifetime(6E-24).
:- end_object.
:- object(delta_minus, extends(baryon)).
mass(1234).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(-1).
spin(1/2).
lifetime(6E-24).
:- end_object.
:- object(anti_delta_minus, extends(baryon)).
mass(1234).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charge(1).
spin(1/2).
lifetime(6E-24).
:- end_object.
:- object(xi0, extends(baryon)).
mass(1315).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-2).
charge(0).
spin(1/2).
lifetime(2.9E-10).
:- end_object.
:- object(anti_xi0, extends(baryon)).
mass(1315).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-2).
charge(0).
spin(1/2).
lifetime(2.9E-10).
:- end_object.
:- object(xi_minus, extends(baryon)).
mass(1321).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-2).
charge(-1).
spin(1/2).
lifetime(1.64E-10).
:- end_object.
:- object(anti_xi_minus, extends(baryon)).
mass(1321).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-2).
charge(1).
spin(anti_xi_minus, 1/2).
lifetime(1.64E-10).
:- end_object.
:- object(omega, extends(baryon)).
mass(1672).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-3).
charge(omega, -1).
spin(1/2).
lifetime(0.82E-10).
:- end_object.
:- object(anti_omega, extends(baryon)).
mass(1672).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-3).
charge(anti_omega, 1).
spin(1/2).
lifetime( 0.82E-10).
:- end_object.
% QUARKS
:- object(quark, extends(particle)).
% common properties to all quarks
fermion.
:- end_object.
:- object(up, extends(quark)).
mass(2.3).
baryon_number(1/3).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charm(0).
bottomness(0).
topness(0).
charge(2/3).
spin(1/2).
lifetime('Stable').
:- end_object.
:- object(anti_up, extends(quark)).
mass(2.3).
baryon_number(1/3).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charm(0).
bottomness(0).
topness(0).
charge(-2/3).
spin(1/2).
lifetime('Stable').
:- end_object.
:- object(down, extends(quark)).
mass(4.8).
baryon_number(1/3).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charm(0).
bottomness(0).
topness(0).
charge(down, -1/3).
spin(1/2).
lifetime('Stable').
:- end_object.
:- object(anti_down, extends(quark)).
mass(4.8).
baryon_number(1/3).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charm(0).
bottomness(0).
topness(0).
charge(1/3).
spin(1/2).
lifetime('Stable').
:- end_object.
:- object(strange, extends(quark)).
mass(95).
baryon_number(1/3).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-1).
charm(0).
bottomness(0).
topness(0).
charge(1/3).
spin(1/2).
lifetime(1.24E-8).
:- end_object.
:- object(anti_strange, extends(quark)).
mass(95).
baryon_number(1/3).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(-1).
charm(0).
bottomness(0).
topness(0).
charge(-1/3).
spin(1/2).
lifetime(1.24E-8).
:- end_object.
:- object(charm, extends(quark)).
mass(1275).
baryon_number(1/3).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charm(1).
bottomness(0).
topness(0).
charge(2/3).
spin(1/2).
lifetime(1.1E-12).
:- end_object.
:- object(anti_charm, extends(quark)).
mass(1275).
baryon_number(1).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charm(1).
bottomness(0).
topness(0).
charge(-2/3).
spin(1/2).
lifetime(1.1E-12).
:- end_object.
:- object(top, extends(quark)).
mass(173210).
baryon_number(1/3).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charm(0).
bottomness(0).
topness(1).
charge(2/3).
spin(1/2).
lifetime(4.2E-25).
:- end_object.
:- object(anti_top, extends(quark)).
mass(173210).
baryon_number(1/3).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charm(0).
bottomness(0).
topness(1).
charge(-2/3).
spin(1/2).
lifetime(4.2E-25).
:- end_object.
:- object(bottom, extends(quark)).
mass(4180).
baryon_number(1/3).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charm(0).
bottomness(-1).
topness(0).
charge(-1/3).
spin(1/2).
lifetime(1.3E-12).
:- end_object.
:- object(anti_bottom, extends(quark)).
mass(4180).
baryon_number(1/3).
l_e(0).
l_mu(0).
l_tau(0).
strangeness(0).
charm(0).
bottomness(-1).
topness(0).
charge(1/3).
spin(anti_bottom, 1/2).
lifetime(1.3E-12).
:- end_object.
% GAUGE_BOSONS
:- object(gauge_boson, extends(particle)).
% common properties to all gauge bosons
:- public([
colour_charge/1
]).
boson.
:- end_object.
:- object(higgs, extends(gauge_boson)).
mass(125180).
charge(0).
colour_charge(0).
spin(0).
lifetime(1.56E-22).
:- end_object.
:- object(photon, extends(gauge_boson)).
mass(0).
charge(0).
colour_charge(0).
spin(1).
lifetime('Stable').
:- end_object.
:- object(gluon, extends(gauge_boson)).
mass(0).
charge(0).
colour_charge(0).
spin(1).
lifetime('Stable').
:- end_object.
:- object(z0_boson, extends(gauge_boson)).
mass(91188).
charge(0).
colour_charge(0).
spin(1).
lifetime(3E-25).
:- end_object.
:- object(w_plus_boson, extends(gauge_boson)).
mass(80379).
charge(1).
colour_charge(0).
spin(1).
lifetime(3E-25).
:- end_object.
:- object(w_minus_boson, extends(gauge_boson)).
mass(80379).
charge(-1).
colour_charge(0).
spin(1).
lifetime(3E-25).
:- end_object.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment