/**
 * physics.h
 * @brief header file with required physics constants defined
 * @todo make the particle constants into constant, globa structs
 * @author Michael Roth <xrothm00@stud.fit.vutbr.cz>
 * @version 1.0.5
 * @since 1.0.5
*/

// header guard
#ifndef PHYSICS_H
#define PHYSICS_H

// standard constants

#define PI 3.14159265358979323846 // rad
#define ELEMENTARY_CHARGE 1.60217662E-19 // C
#define LIGHT_SPEED 299792458 // [m/s]

// rest masses of quarks
#define U_M0 4.10012241974416e-30 // kg
#define D_M0 8.55677722381391e-30 // kg
#define C_M0 2.27289395007557e-27 // kg
#define S_M0 1.6935288255465e-28 // kg
#define T_M0 3.08774871445168e-25 // kg
#define B_M0 7.45152683240461e-27 // kg

// rest masses of leptons
#define ELECTRON_M0 9.10938356E-31 // kg
#define MUON_M0 1.883531E-28 // kg
#define TAU_M0 3.16754E-27 // kg

// rest masses of baryons
#define PROTON_M0 1.67262191146007e-27 // kg
#define NEUTRON_M0 1.67492748516849e-27 // kg
#define LAMBDA_0_M0 1.98888560070758e-27 // kg
#define LAMBDA_CHARM_M0 4.07598517732532e-27 // kg
#define LAMBDA_BOTTOM_M0 1.00178469347801e-26 // kg
#define SIGMA_PLUS_M0 2.12024460972657e-27 // kg
#define SIGMA_0_M0 2.12607747953414e-27 // kg
#define SIGMA_MINUS_M0 2.13464673539141e-27 // kg
#define SIGMA_CHARM_2_M0 4.37459887581721e-27 // kg
#define SIGMA_CHARM_1_M0 4.37269142756107e-27 // kg
#define SIGMA_CHARM_0_M0 4.37420669019445e-27 // kg
#define SIGMA_BOTTOM_1_M0 1.03582640553342e-26 // kg
#define SIGMA_BOTTOM_MINUS_M0 1.03673199778961e-26 // kg


// quantum charges of baryons
#define PROTON_Q 1
#define NEUTRON_Q 0
#define LAMBDA_0_Q 0
#define LAMBDA_CHARM_Q 1
#define LAMBDA_BOTTOM_Q 0
#define SIGMA_PLUS_Q 1
#define SIGMA_0_Q 0
#define SIGMA_MINUS_Q (-1)
#define SIGMA_CHARM_2_Q 2
#define SIGMA_CHARM_1_Q 1
#define SIGMA_CHARM_0_Q 0
#define SIGMA_BOTTOM_1_Q 0
#define SIGMA_BOTTOM_MINUS_Q (-1)

#endif // !PHYSICS_H
