https://en.wikipedia.org/wiki/Weak_hypercharge
TOE 8-simplex charge space of Standard Model
anti-Higgs? {1-2} Q=0.000 T3=0.500 Yw=-1.000 spin=0.000 R=0.00 G=0.00 B=0.00
W3 {2-3} Q=-1.000 T3=-1.000 Yw=0.000 spin=1.000 R=0.00 G=0.00 B=0.00
W1 {1-3} Q=-1.000 T3=-0.500 Yw=-1.000 spin=1.000 R=0.00 G=0.00 B=0.00
B0 {4-1} Q=1.000 T3=0.000 Yw=2.000 spin=-1.000 R=0.00 G=0.00 B=0.00
W2 {4-2} Q=1.000 T3=0.500 Yw=1.000 spin=-1.000 R=0.00 G=0.00 B=0.00
Higgs {4-3} Q=0.000 T3=-0.500 Yw=1.000 spin=0.000 R=0.00 G=0.00 B=0.00
electron Right {1-5} Q=-1.000 T3=0.000 Yw=-2.000 spin=0.500 R=0.00 G=0.00 B=0.00
electron Left {2-5} Q=-1.000 T3=-0.500 Yw=-1.000 spin=0.500 R=0.00 G=0.00 B=0.00
neutrino Left {3-5} Q=0.000 T3=0.500 Yw=-1.000 spin=-0.500 R=0.00 G=0.00 B=0.00
superchargeSUSY {4-5} Q=0.000 T3=0.000 Yw=0.000 spin=-0.500 R=0.00 G=0.00 B=0.00
Red Color Charge
down Right {1-6} Q=-0.333 T3=0.000 Yw=-0.667 spin=0.500 R=0.67 G=0.00 B=0.00
down Left {2-6} Q=-0.333 T3=-0.500 Yw=0.333 spin=0.500 R=0.67 G=0.00 B=0.00
up Left {3-6} Q=0.667 T3=0.500 Yw=0.333 spin=-0.500 R=0.67 G=0.00 B=0.00
up Right {4-6} Q=0.667 T3=0.000 Yw=1.333 spin=-0.500 R=0.67 G=0.00 B=0.00
unknown gluon? {5-6} Q=0.667 T3=0.000 Yw=1.333 spin=0.000 R=0.67 G=0.00 B=0.00
Green Color Charge
down Right {1-7} Q=-0.333 T3=0.000 Yw=-0.667 spin=0.500 R=0.00 G=0.67 B=0.00
down Left {2-7} Q=-0.333 T3=-0.500 Yw=0.333 spin=0.500 R=0.00 G=0.67 B=0.00
up Left {3-7} Q=0.667 T3=0.500 Yw=0.333 spin=-0.500 R=0.00 G=0.67 B=0.00
up Right {4-7} Q=0.667 T3=0.000 Yw=1.333 spin=-0.500 R=0.00 G=0.67 B=0.00
unknown gluon? {5-7} Q=0.667 T3=0.000 Yw=1.333 spin=0.000 R=0.00 G=0.67 B=0.00
unknown scalar {6-7} Q=0.000 T3=0.000 Yw=0.000 spin=0.000 R=-0.67 G=0.67 B=0.00
Blue Color Charge
down Right {1-8} Q=-0.333 T3=0.000 Yw=-0.667 spin=0.500 R=0.00 G=0.00 B=0.67
down Left {2-8} Q=-0.333 T3=-0.500 Yw=0.333 spin=0.500 R=0.00 G=0.00 B=0.67
up Left {3-8} Q=0.667 T3=0.500 Yw=0.333 spin=-0.500 R=0.00 G=0.00 B=0.67
up Right {4-8} Q=0.667 T3=0.000 Yw=1.333 spin=-0.500 R=0.00 G=0.00 B=0.67
unknown gluon? {5-8} Q=0.667 T3=0.000 Yw=1.333 spin=0.000 R=0.00 G=0.00 B=0.67
unknown scalar {6-8} Q=0.000 T3=0.000 Yw=0.000 spin=0.000 R=-0.67 G=0.00 B=0.67
unknown scalar {7-8} Q=0.000 T3=0.000 Yw=0.000 spin=0.000 R=0.00 G=-0.67 B=0.67
es ami kiszamolta ezt a kb 80 toltes egyetlent geometriai objektbol:
// 8-simplex charge space of the Standard Model of particle physics
// 8d 'tetrahedron' part of E8 group TOE, GUT
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <math.h>
#define float1 double
#define iradian (M_PI/180.0)
struct vec8
{
float1 x[16];
int dimension;
#define SUM for(int i=0;i<dimension;i++)
vec8() {init();return;};
vec8(float1 x_,float1 y_,float1 z_) {init();x[0]=x_;x[1]=y_;x[2]=z_;return;};
vec8(float1 x1_,float1 x2_,float1 x3_,float1 x4_,float1 x5_,float1 x6_,float1 x7_,float1 x8_)
{init();x[0]=x1_;x[1]=x2_;x[2]=x3_;x[3]=x4_;x[4]=x5_;x[5]=x6_;x[6]=x7_;x[7]=x8_;return;};
void init() {dimension=8;SUM x[i]=0;}
vec8 operator + (vec8 v) {vec8 v_;SUM v_.x[i]=x[i]+v.x[i];return v_;};
vec8 operator - (vec8 v) {vec8 v_;SUM v_.x[i]=x[i]-v.x[i];return v_;};
vec8 operator * (vec8 v) {vec8 v_;SUM v_.x[i]=x[i]*v.x[i];return v_;};
vec8 operator / (vec8 v) {vec8 v_;SUM v_.x[i]=x[i]/v.x[i];return v_;};
vec8 operator += (vec8 v) {SUM x[i]+=v.x[i];return *this;};
vec8 operator -= (vec8 v) {SUM x[i]-=v.x[i];return *this;};
vec8 operator *= (vec8 v) {SUM x[i]*=v.x[i];return *this;};
vec8 operator /= (vec8 v) {SUM x[i]/=v.x[i];return *this;};
vec8 operator + (float1 s) {vec8 v_;SUM v_.x[i]=x[i]+s;return v_;};
vec8 operator - (float1 s) {vec8 v_;SUM v_.x[i]=x[i]-s;return v_;};
vec8 operator * (float1 s) {vec8 v_;SUM v_.x[i]=x[i]*s;return v_;};
vec8 operator / (float1 s) {vec8 v_;SUM v_.x[i]=x[i]/s;return v_;};
vec8 operator += (float1 s) {SUM x[i]+=s;return *this;};
vec8 operator -= (float1 s) {SUM x[i]-=s;return *this;};
vec8 operator *= (float1 s) {SUM x[i]*=s;return *this;};
vec8 operator /= (float1 s) {SUM x[i]/=s;return *this;};
vec8 operator - () {vec8 v_;SUM v_.x[i]=-x[i];return v_;};
float1 &operator [](int indx)
{
if(indx<1 || indx>(dimension+1)) printf("[%d] ERRORn",indx);
return x[indx-1];
}
};
float1 dot8(vec8 v1,vec8 v2) { int dimension=v1.dimension;float1 a=0;SUM a+=(v1.x[i]*v2.x[i]);return a;}
float1 length8(vec8 v1)
{
float1 t1=dot8(v1,v1);
return sqrt(t1);
}
vec8 normalize8(vec8 v1)
{
float1 t1=length8(v1);
return v1/t1;
}
void cvariant(vec8 &v1) { v1=v1/dot8(v1,v1);};
//the charge projection matrix
vec8 Yw_axis;// weak-hypercharge
vec8 T3_axis;// 3rd component of the weak-isospin
vec8 Q_axis;// electric charge
vec8 spin_axis;// spin number
vec8 colorR_axis;// color charge (strong force)
vec8 colorG_axis;
vec8 colorB_axis;
vec8 p1,p2,p3,p4,p5,p6,p7,p8;
void dumpvec8(const char *ss,vec8 v1)
{
printf("%s? : %.6e %.6e %.6e %.6e %.6e %.6e %.6e %.6e n",ss,v1[1],v1[2],v1[3],v1[4],v1[5],v1[6],v1[7],v1[8]);
return;
}
void print_angle(const char *mask,vec8 p1,vec8 p2)
{
float q=dot8(normalize8(p1),normalize8(p2) );
float1 alf=acos(q)/iradian;
printf("%s %.3f %.3f n",mask,alf,q);
}
void check_8d_edges_length_and_angle()
{
vec8 pp[16];
pp[0]=p1; pp[1]=p2; pp[2]=p3; pp[3]=p4; pp[4]=p5; pp[5]=p6; pp[6]=p7; pp[7]=p8;
for(int i=0;i<8;i++)
for(int j=0;j<8;j++)
if(i!=j)
printf(".%d-%d %.3e n",i,j,length8(pp[i]-pp[j]));// all 0.866
for(int i=0;i<8;i++)
for(int j=0;j<8;j++)
for(int k=0;k<8;k++)
if(i!=j) if(i!=k) if(k!=j)
print_angle("..",pp[k]-pp[i],pp[j]-pp[i]);// all 60.0
}
void calc_charges(vec8 a,vec8 b,const char *mask,const char *mask2)
{
vec8 axial=b - a;
float1 Yw =dot8(axial,Yw_axis);// 4x6 charge projection matrix
float1 T3 =dot8(axial,T3_axis);
float1 Q =dot8(axial,Q_axis);
float1 spin=dot8(axial,spin_axis);
float1 colorR=dot8(axial,colorR_axis);
float1 colorG=dot8(axial,colorG_axis);
float1 colorB=dot8(axial,colorB_axis);
if(mask)
printf("%s %s Q=%0.3ftT3=%0.3ftYw=%0.3ftspin=%0.3ftR=%0.2ftG=%0.2ftB=%0.2f n",
mask,mask2,Q,T3,Yw,spin,colorR,colorG,colorB);
}
void initSM8simplexChargeSpace()
{
p1 =vec8(1,0,0,0,0,0,0,0);
p2 =vec8(0,1,0,0,0,0,0,0);
p3 =vec8(0,0,1,0,0,0,0,0);
p4 =vec8(0,0,0,1,0,0,0,0);
p5 =vec8(0,0,0,0,1,0,0,0);
p6 =vec8(0,0,0,0,0,1,0,0);
p7 =vec8(0,0,0,0,0,0,1,0);
p8 =vec8(0,0,0,0,0,0,0,1);
check_8d_edges_length_and_angle();
Yw_axis =vec8( 1.0, 0.0, 0.0, -1.0, -1.0, 0.3333, 0.3333, 0.3333);// v2.0
T3_axis =vec8( 0.0, 0.5, -0.5, 0.0, 0.0, 0.0, 0.0, 0.0);
spin_axis=vec8(-0.5, -0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0);
colorR_axis=vec8(0.0, 0.0, 0.0, 0.0, 0.0, 0.6666, 0.0, 0.0);
colorG_axis=vec8(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6666, 0.0);
colorB_axis=vec8(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6666);
Q_axis=Yw_axis/2.0 + T3_axis;
return;
}
void dumpSM8simplexChargeSpace()
{
//table: https://en.wikipedia.org/wiki/Weak_hypercharge
printf("t TOE 8-simplex charge space of Standard Modeln");
calc_charges(p1,p2,"t anti-Higgs? ","{1-2}"); //presymmetry breaking bosons
calc_charges(p2,p3,"t W3 ","{2-3}"); //3rd component of weak isospin ... or W boson
calc_charges(p1,p3,"t W1 ","{1-3}");
calc_charges(p4,p1,"t B0 ","{4-1}"); //weak hypercharge
calc_charges(p4,p2,"t W2 ","{4-2}");
calc_charges(p4,p3,"t Higgs ","{4-3}");
printf("n");
calc_charges(p1,p5,"t electron Right ","{1-5}"); //leptons
calc_charges(p2,p5,"t electron Left ","{2-5}");
calc_charges(p3,p5,"t neutrino Left ","{3-5}");
calc_charges(p4,p5,"t superchargeSUSY","{4-5}"); // right handed neutrino
printf("n");
printf("t Red Color Chargen");
calc_charges(p1,p6,"t down Right ","{1-6}"); //quarks color R
calc_charges(p2,p6,"t down Left ","{2-6}");
calc_charges(p3,p6,"t up Left ","{3-6}");
calc_charges(p4,p6,"t up Right ","{4-6}");
calc_charges(p5,p6,"t unknown gluon? ","{5-6}");
printf("n");
printf("t Green Color Chargen");
calc_charges(p1,p7,"t down Right ","{1-7}"); //quarks color G
calc_charges(p2,p7,"t down Left ","{2-7}");
calc_charges(p3,p7,"t up Left ","{3-7}");
calc_charges(p4,p7,"t up Right ","{4-7}");
calc_charges(p5,p7,"t unknown gluon? ","{5-7}");
calc_charges(p6,p7,"t unknown scalar ","{6-7}");
printf("n");
printf("t Blue Color Chargen");
calc_charges(p1,p8,"t down Right ","{1-8}"); //quarks color B
calc_charges(p2,p8,"t down Left ","{2-8}");
calc_charges(p3,p8,"t up Left ","{3-8}");
calc_charges(p4,p8,"t up Right ","{4-8}");
calc_charges(p5,p8,"t unknown gluon? ","{5-8}");
calc_charges(p6,p8,"t unknown scalar ","{6-8}");
calc_charges(p7,p8,"t unknown scalar ","{7-8}");
printf("n");
return;
}
int main()
{
initSM8simplexChargeSpace();
dumpSM8simplexChargeSpace();
return 0;
}