% Author: Izaak Neutelings (February 2023)
% Description:
%   Standard Model (SM) of Particles Physics table,
%   with different groups highlighted (using opacity) for presentations
% Inspired by:
%   https://en.wikipedia.org/wiki/File:Standard_Model_of_Elementary_Particles.svg
\documentclass[border=3pt,tikz]{standalone}
\usepackage{amsmath} % for \text
\usepackage{xfrac} % for \myfrac
\usepackage{bm} % for \bm
\usetikzlibrary{calc}
\usetikzlibrary{positioning}

% FONT
\usepackage{sansmath} % for \sansmath
\renewcommand{\familydefault}{\sfdefault} % set sans serif font globally
\sansmath % set sans serif font globally

% UNSLANT GREEK LETTERS for particle symbols
% https://tex.stackexchange.com/questions/145926/upright-greek-font-fitting-to-computer-modern
% https://tex.stackexchange.com/questions/236915/adjust-custom-made-upright-greek-letters-when-used-in-subscripts
\usepackage{scalerel}
\newsavebox{\foobox}
\newcommand{\slantbox}[2][0]{\mbox{%
  \sbox{\foobox}{#2}%
  \hskip\wd\foobox
  \pdfsave
  \pdfsetmatrix{1 0 #1 1}%
  \llap{\usebox{\foobox}}%
  \pdfrestore
}}
\newcommand\unslant[2][-.25]{%
  %\mkern1.2mu%
  \ThisStyle{\slantbox[#1]{$\SavedStyle#2$}}%
  \mkern-2.2mu%
}
\newcommand\PGm{\unslant\mu} % muon
\newcommand\PGt{\unslant\tau} % tau
\newcommand\PGn[1]{\unslant\nu_{#1}\mkern-1.5mu} % neutrino
\newcommand\PAGn[1]{\overline{\unslant\nu}_{\mathrm{#1}}\mkern-1.5mu} % anti-neutrino
\newcommand\PSGn[1]{\widetilde{\unslant\nu}_{\mathrm{#1}}\mkern-1.5mu} % sneutrino
\newcommand\mytilde[1]{\widetilde{\text{#1}}} % tilde with math roman
%\newcommand\myHiggsino[2]{\mytilde{H}^{\raisebox{-1.3pt}{$\scriptstyle#1$}}_{\raisebox{1pt}{$\scriptstyle\text{#2}$}}} % H with tilde, raised subscript, lowered superscript

\makeatletter
\newcommand{\raisemath}[1]{\mathpalette{\raisem@th{#1}}}
\newcommand{\raisem@th}[3]{\raisebox{#1}{$#2#3$}}
\makeatother

% UNITS
% The macros below are used to control the spacing between numbers and units
%\newcommand\MeV{\,\text{GeV}\mkern-1mu/\mkern-1muc^2} % HEP units
%\newcommand\MeV{\,\text{MeV}\mkern-1mu/\mkern-1muc^2} % HEP units
%\newcommand\eV{\,\text{eV}\mkern-1mu/\mkern-1muc^2} % HEP units
\newcommand\GeV{\,\text{GeV}} % natural units
\newcommand\MeV{\,\text{MeV}} % natural units
\newcommand\eV{\,\text{eV}} % natural units

% COLORS
\colorlet{mylightblue}{blue!60!cyan!80!black!15}
\colorlet{mypurple}{blue!50!red!70}
\colorlet{gaugecol}{red!90!black!70} % Wiki red
\colorlet{leptoncol}{green!80!black!70} % Wiki green
\colorlet{quarkcol}{blue!85!cyan!95!black!55} % Wiki purple
\colorlet{quarkred}{red!98!black!55} % quark red
\colorlet{quarkblue}{blue!85!cyan!98!black!55} % quark blue
\colorlet{quarkgreen}{green!95!black!55} % quark green
\colorlet{gluoncyan}{cyan!100!black!55} % gluon cyan
\colorlet{gluongreen}{green!75!blue!95!black!70} % gluon green
\colorlet{gluonyellow}{yellow!98!black!55} % gluon yellow
\colorlet{gluonorange}{orange!100!black!65} % gluon orange
\colorlet{gluonmagenta}{magenta!100!black!70} % gluon magenta
\colorlet{scalarcol}{yellow!70!orange!98!black}
\colorlet{tensorcol}{blue!50!red!70} % Wiki light blue
\colorlet{groupcol}{orange!15}

% STYLES
\tikzset{
  >=latex, % for LaTeX arrow head
  header/.style={black,midway,font=\bf,align=center,scale=0.6},
  proplabel/.style={black!70,scale=0.5}, % label of properties
  bflabel/.style={font=\bf,inner sep=0.5pt,rotate=90},
}

% LAYERS
\pgfdeclarelayer{back} % to draw on background
\pgfsetlayers{back,main} % set order

% PARTICLE macro
\def\pw{0.94} % width/height of particle box
\newcommand\opGen[2]{min(#1,(\setGen==0 || \setGen==#2) ? 1 : \d)} % calculate fermion opacity
\newcommand\myfrac[2]{\sfrac{#1\mkern-1.2mu}{#2}} % slanted frac
\tikzset{
  x={(1.4,0)},y={(0,1.6)}, % scale x, y axes differently
  global scale/.style={scale=#1,every node/.style={scale=#1}},
  intgroup/.style={draw=#1!90!black!80,line width=0.5, % interaction groups
                   fill=#1,fill opacity=0.5},
  intgroup/.default=groupcol,
  pics/particle/.style n args={6}{ % particle boxes
    code={
      \tikzset{/tikz/pic opacity/.get=\OP}
      \begin{scope}[opacity=\OP]
      
      % COORDINATES
      \coordinate (-sw) at (-\pw/2,-\pw/2);
      \coordinate (-nw) at (-\pw/2, \pw/2);
      \coordinate (-se) at ( \pw/2,-\pw/2);
      \coordinate (-ne) at ( \pw/2, \pw/2);
      
      % DRAW BOX
      \ifnum\pgfkeysvalueof{/tikz/fill box}=1 % fill particle boxes with color
        \draw[#1,line width=1.1,rounded corners=3pt,shading angle=30,
              top color=#1!90!black!40,bottom color=#1!75!black!40]
          (-sw) rectangle (-ne);
      \else % do not fill particle boxes with color
        %\draw[draw=#1,line width=1.1,rounded corners=3pt]
        %  (-sw) rectangle (-ne);
        \fill[top color=#1,bottom color=#1!90!black,shading angle=30,
              rounded corners=3pt,even odd rule]
          (-0.48*\pw,-0.48*\pw) rectangle (0.48*\pw,0.48*\pw)
          [rounded corners=3.7pt] (-sw) rectangle (-ne);
      \fi
      
      % DRAW PARTICLES
      \ifnum\pgfkeysvalueof{/tikz/quark balls}>0 % draw QUARK as colored RGB balls
        \ifnum \pgfkeysvalueof{/tikz/quark balls}=1
          \def\quarklist{quarkgreen/35:4pt/0.9,quarkred/-35:3.7pt/0.9,quarkblue/0:0/1}
        \else
          \def\quarklist{gluonmagenta/35:4pt/0.9,gluoncyan/-35:3.7pt/0.9,gluonyellow/0:0/1}
        \fi
        \foreach \col/\shift/\scale in \quarklist{
          \fill[ball color=\col,scale=1,shift=(\shift),scale=\scale, % particle ball
                postaction={fill=\col!80,opacity=0.8*\OP,
                draw=\col!80!black!90,ultra thin}]
            (0,0.06) circle(9.5pt) coordinate(-p);
          }
      \else \ifnum\pgfkeysvalueof{/tikz/gluon balls}=1 % draw GLUON as colored RGB balls
        \foreach \col/\shift/\scale in {%
          gluonmagenta/-50:5pt/0.8,gluonyellow/0:5pt/0.78,gluoncyan/50:5pt/0.8,%
          gluongreen/100:6pt/0.8,quarkblue/200:5.8pt/0.8,gluonorange/150:5.8pt/0.76,%
          quarkgreen/250:4.5pt/0.8,quarkred/0:0/1%
        }{
          \fill[ball color=\col,scale=1,shift=(\shift),scale=\scale, % particle ball
                postaction={fill=\col!80,opacity=0.8*\OP,
                draw=\col!80!black!90,ultra thin}]
            (0,0.06) circle(9pt) coordinate(-p);
          }
      \else % draw one PARTICLE ball
        \draw[draw=none,ball color=#1,scale=1, % particle ball
              postaction={fill=#1!77,opacity=0.8*\OP,
              draw=#1!80!black!90,ultra thin}]
          (0,0.06) circle(\pgfkeysvalueof{/tikz/ball radius}) coordinate(-p);
      \fi \fi % close all \ifnum
      
      % DRAW TEXT
      \node[text=black,scale=1,shift=\pgfkeysvalueof{/tikz/symb shift}] % particle symbol
        at (-p) {\textbf{\boldmath{#2}}};
      \node[align=center,font=\bf, % particle name
            scale=0.8*\pgfkeysvalueof{/tikz/scale name}]
        at (0,-0.3) {\strut#3};
      \node[below right,proplabel] % mass
        at (-0.5*\pw,0.50*\pw) {\strut$#4$};
      \node[below right,proplabel] % charge
        at (-0.5*\pw,0.35*\pw) {\strut$#5$};
      \node[below right,proplabel] % spin
        at (-0.5*\pw,0.20*\pw) {\strut$#6$};
      
      \end{scope} % close opacity scope
    }
  },
  % DEFAULT SETTINGS of parameters:
  scale name/.initial=1, % scale for particle name
  symb shift/.initial={(0,0)}, % shift for particle symbol
  ball radius/.initial=10pt, % radius for particle ball
  quark balls/.initial=0, % draw quark as 3 RGB-colored balls
  gluon balls/.initial=0, % draw gluon as 8 RGB-colored balls
  fill box/.initial=0, % fill particle boxes
  pic opacity/.initial=1 % opacity of pictures
}

% HEADERS
\def\nfermioncols{3} % number of fermion columns, default = 3
\def\nbosoncols{2} % number of boson columns, default = 2
\def\headers{
  \fill[mylightblue,rounded corners=4pt] % FERMIONS
    (1-\pw/2,4.74) rectangle (3+\pw/2,5.1)
    node[midway,header] {%
      three generations of matter\\[0pt]
      (fermions)};
  \node[above=0pt,scale=0.75] at (1,4.5) {I};
  \node[above=0pt,scale=0.75] at (2,4.5) {II};
  \node[above=0pt,scale=0.75] at (3,4.5) {III};
  \ifnum\nfermioncols>3 % include antifermions
    \fill[mylightblue,rounded corners=4pt] % ANTIFERMIONS
      (4-\pw/2,4.74) rectangle (\nfermioncols+\pw/2,5.1)
      node[midway,header] {%
        three generations of antimatter\\[0pt]
        (antifermions)};
    \node[above=0pt,scale=0.75] at (4,4.5) {I};
    \node[above=0pt,scale=0.75] at (5,4.5) {II};
    \node[above=0pt,scale=0.75] at (6,4.5) {III};
  \fi
  \fill[mylightblue,rounded corners=4pt] % BOSONS
    (\nfermioncols+1-\pw/2,4.74) rectangle (\nfermioncols+\nbosoncols+\pw/2,5.1)
    node[midway,header] {%
      interactions / forces\\[0pt]
      (bosons)};
}
\def\headerMSSM{
  \fill[mylightblue,rounded corners=4pt] % SFERMIONS / BOSONS
    (1-\pw/2,4.74) rectangle (3+\pw/2,5.1)
    node[midway,header] {%
      superpartners of SM fermions\\[0pt]
      (sfermions, bosons)};
  \node[above=0pt,scale=0.75] at (1,4.5) {I};
  \node[above=0pt,scale=0.75] at (2,4.5) {II};
  \node[above=0pt,scale=0.75] at (3,4.5) {III};
  \fill[mylightblue,rounded corners=4pt] % BOSINOS / FERMIONS
    (\nfermioncols+1-0.52*\pw,4.74) rectangle (\nfermioncols+\nbosoncols+0.52*\pw,5.1)
    node[midway,header,scale=0.97] {%
      superpartners of SM bosons\\[0pt]
      (bosinos, fermions)};
}
\def\legend{
  \node[below left,proplabel]
    at (0.5,4+0.50*\pw) {\strut mass};
  \node[below left,proplabel]
    at (0.5,4+0.35*\pw) {\strut charge};
  \node[below left,proplabel]
    at (0.5,4+0.20*\pw) {\strut spin};
}

\begin{document}


% SM PARTICLES: GROUPS (like Wiki)
% https://en.wikipedia.org/wiki/File:Standard_Model_of_Elementary_Particles.svg
\def\d{0.1} % dimmed opacity to highlight others
\foreach \f in {0,1}{ % fill particle boxes
\foreach \opQua/\opLep/\opNu/\opGlu/\opGam/\opWeak/\opHig/\setGen in {%
  % highlight different groups of particles,
  % by reducing the opacity of others
  1/1/1/1/1/1/1/0,       % highlight everything
  1/1/1/\d/\d/\d/\d/0,   % fermions
  1/\d/\d/\d/\d/\d/\d/0, % quarks
  \d/1/1/\d/\d/\d/\d/0,  % leptons
  1/1/1/\d/\d/\d/\d/1,   % first generation fermions
  1/1/1/\d/\d/\d/\d/2,   % second generation fermions
  1/1/1/\d/\d/\d/\d/3,   % third generation fermions
  \d/\d/\d/1/1/1/1/0,    % bosons
  \d/\d/\d/1/1/1/\d/0,   % gauge bosons
  1/\d/\d/1/\d/\d/\d/0,  % strong interactions
  1/1/\d/\d/1/\d/\d/0,   % electromagnetic interactions
  1/1/1/\d/\d/1/\d/0,    % weak interactions
  1/1/1/\d/\d/1/1/0      % Higgs interactions
}{ % loop over opacities
\begin{tikzpicture}[fill box=\f]
  \message{^^JSM particles: fill box=\f, Qua=\opQua, Lep=\opLep, Nu=\opNu, 
           Glu=\opGlu, Gam=\opGam, Weak=\opWeak, Hig=\opHig}
  
  % HEADERS
  \headers
  \legend
  
  % SWITCHES
  \pgfmathsetmacro\opAllLep{max(\opLep,\opNu)}
  \pgfmathsetmacro\opGau{max(\opGlu,\opGam,\opWeak)}
  \pgfmathsetmacro\opBos{max(\opGlu,\opGam,\opWeak,\opHig)}
  
  % QUARKS
  %\begin{scope}[opacity=\opQua,pic opacity=\opQua] % to highlight others
    \pic[pic opacity=\opGen{\opQua}{1}] (QU) at (1,4) {
      particle={quarkcol}{u}{up}{%
        \simeq2.16\MeV}{\!\myfrac{+\!2}{3}}{\myfrac{1}{2}}
    };
    \pic[pic opacity=\opGen{\opQua}{2}] (QC) at (2,4) {
      particle={quarkcol}{c}{charm}{%
        \simeq1.27\GeV}{\!\myfrac{+\!2}{3}}{\myfrac{1}{2}}
    };
    \pic[pic opacity=\opGen{\opQua}{3}] (QT) at (3,4) {
      particle={quarkcol}{t}{top}{%
        \simeq173\GeV}{\!\myfrac{+\!2}{3}}{\myfrac{1}{2}}
    };
    \pic[pic opacity=\opGen{\opQua}{1},symb shift=(90:0.5pt)] (QD) at (1,3) {
      particle={quarkcol}{d}{down}{%
        \simeq4.7\MeV}{\!\myfrac{-\!1}{3}}{\myfrac{1}{2}}
    };
    \pic[pic opacity=\opGen{\opQua}{2}] (QS) at (2,3) {
      particle={quarkcol}{s}{strange}{%
        \simeq94\MeV}{\!\myfrac{-\!1}{3}}{\myfrac{1}{2}}
    };
    \pic[pic opacity=\opGen{\opQua}{3},symb shift=(90:0.5pt)] (QB) at (3,3) {
      particle={quarkcol}{b}{bottom}{%
        \simeq4.18\GeV}{\!\myfrac{-\!1}{3}}{\myfrac{1}{2}}
    };
    \node[quarkcol,bflabel,above right=0pt and -2pt,opacity=\opQua]
      at (QD-sw) {QUARKS};
  %\end{scope}
  
  % LEPTONS
  \pic[pic opacity=\opGen{\opLep}{1}] (EL) at (1,2) {
    particle={leptoncol}{e}{electron}{%
      \simeq0.511\MeV}{-1}{\myfrac{1}{2}}
  };
  \pic[pic opacity=\opGen{\opLep}{2},symb shift=(-90:0.6pt)] (MU) at (2,2) {
    particle={leptoncol}{$\PGm$}{muon}{%
      \simeq106\MeV}{-1}{\myfrac{1}{2}}
  };
  \pic[pic opacity=\opGen{\opLep}{3}] (TAU) at (3,2) {
    particle={leptoncol}{$\PGt$}{tau}{%
      \simeq1.78\GeV}{-1}{\myfrac{1}{2}}
  };
  \pic[pic opacity=\opGen{\opNu}{1},scale name=0.83] (NE) at (1,1) {
    particle={leptoncol}{$\PGn{\text{e}}$}{electron\\[-3pt]neutrino}{%
      <0.8\eV}{0}{\myfrac{1}{2}}
  };
  \pic[pic opacity=\opGen{\opNu}{2},scale name=0.83,symb shift=(-90:0.6pt)] (NM) at (2,1) {
    particle={leptoncol}{$\PGn{\PGm}$}{muon\\[-3pt]neutrino}{%
      <0.17\MeV}{0}{\myfrac{1}{2}}
  };
  \pic[pic opacity=\opGen{\opNu}{3},scale name=0.83] (NT) at (3,1) {
    particle={leptoncol}{$\PGn{\PGt}$}{tau\\[-3pt]neutrino}{%
      <18.2\MeV}{0}{\myfrac{1}{2}}
  };
  \node[leptoncol,bflabel,above right=0pt and -2pt,opacity=\opAllLep]
    at (NE-sw) {LEPTONS};
  
  % GAUGE BOSONS
  \begin{scope}[pic opacity=1] % to highlight others
    \pic[pic opacity=\opGlu] (GLU) at (4,4) {
      particle={gaugecol}{g}{gluon}{%
        0}{0}{1}
    };
    \pic[pic opacity=\opGam] (GAM) at (4,3) {
      particle={gaugecol}{$\gamma$}{photon}{%
        0}{0}{1}
    };
    \pic[pic opacity=\opWeak] (W) at (4,2) {
      particle={gaugecol}{W}{W boson}{% %$\mathrm{W}^\pm$
        \simeq80.4\GeV}{\pm1}{1}
    };
    \pic[pic opacity=\opWeak] (Z) at (4,1) {
      particle={gaugecol}{Z}{Z boson}{% %$\mathrm{Z}^0$
        \simeq91.2\GeV}{0}{1}
    };
    %%%\pic[pic opacity=\opWeak,scale name=0.88] (L) at (5.6,1) {
    %%%  particle={gaugecol}{LQ}{leptoquark}{% %^0$
    %%%    ?}{?}{0 or 1} %>1\TeV
    %%%};
  \end{scope}
  \begin{scope}[opacity=\opGau] % to highlight others
    \node[gaugecol,bflabel,below right=0pt and 2pt]
      (GB) at (Z-se) {GAUGE BOSONS};
    \node[gaugecol,bflabel,below right=-1pt and 2pt,scale=0.7]
      at (GB.south west) {VECTOR BOSONS};
  \end{scope}
  
  % SCALAR BOSONS
  \begin{scope}[opacity=\opHig,pic opacity=\opHig] % to highlight others
    \pic (HIG) at (5,4) {
      particle={scalarcol}{H}{Higgs}{%
        \simeq125\GeV}{0}{0}
    };
    \node[scalarcol,bflabel,above left=-2pt and 2pt]
      at (HIG-se) {SCALAR BOSONS};
  \end{scope}
  
  %%%% TENSOR BOSONS
  %%%\begin{scope}[opacity=\opHig,pic opacity=\opHig] % to highlight others
  %%%  \pic (GRA) at (6,4) {
  %%%    particle={tensorcol}{G}{graviton}{%
  %%%      0}{0}{2}
  %%%  };
  %%%  \node[tensorcol,bflabel,above left=-2pt and 2pt]
  %%%    (TB) at (GRA-se) {TENSOR BOSONS};
  %%%  \node[tensorcol,bflabel,above left=-1pt and 2pt,scale=0.7]
  %%%    at (TB.north east) {HYPOTHETICAL};
  %%%\end{scope}
  
  % INTERACTION GROUPS
  \ifnum\pgfkeysvalueof{/tikz/fill box}=0
  \begin{pgfonlayer}{back} % draw on back
    
    % STRONG INTERACTIONS
    \def\R{11.5pt}
    \fill[intgroup,opacity=0.5*\opGlu] %=blue!20!white]
      (QU-p)++(0,\R) -- ($(GLU-p)+(0,\R)$) arc(90:-90:\R)
      to[out=-180,in=90,looseness=1.2] ($(QB-p)+(\R,0)$) arc(0:-90:\R)
      -- ($(QD-p)+(0,-\R)$) arc(-90:-180:\R)
      -- ($(QU-p)+(-\R,0)$) arc(180:90:\R)
      -- cycle;
    
    % ELECTROMAGNETIC INTERACTIONS
    \def\R{13.5pt}
    \fill[intgroup,opacity=0.5*\opGam] %=green!20!white]
      (QU-p)++(0,\R) -- ($(QT-p)+(0,\R)$) arc(90:0:\R)
      to[out=-90,in=180,looseness=1.2] ($(GAM-p)+(0,\R)$) arc(90:-90:\R)
      to[out=-180,in=90,looseness=1.2] ($(TAU-p)+(\R,0)$) arc(0:-90:\R)
      -- ($(EL-p)+(0,-\R)$) arc(-90:-180:\R)
      -- ($(QU-p)+(-\R,0)$) arc(180:90:\R)
      -- cycle;
    
    % WEAK INTERACTIONS
    \def\R{15.5pt}
    \fill[intgroup,opacity=0.5*\opWeak] %=mypurple!20!white]
      (QU-p)++(0,\R) -- ($(QT-p)+(0,\R)$) arc(90:0:\R)
      -- ($(QB-p)+(\R,0)$)
      to[out=-90,in=180,looseness=1.4] ($(W-p)+(0,\R)$) arc(90:0:\R)
      -- ($(Z-p)+(\R,0)$) arc(0:-90:\R)
      -- ($(NE-p)+(0,-\R)$) arc(-90:-180:\R)
      -- ($(QU-p)+(-\R,0)$) arc(180:90:\R)
      -- cycle;
    
  \end{pgfonlayer}
  \fi
  
\end{tikzpicture}
} % close foreach loop over opacities
} % close foreach loop over \f


% SM PARTICLES plus TENSOR (like Wiki)
\foreach \f in {0,1}{ % fill particle boxes
\begin{tikzpicture}[fill box=\f]
  \message{^^JSM particles: fill box=\f}
  
  % HEADERS
  \def\nbosoncols{3} % number of boson columns
  \headers
  \legend
  
  % QUARKS
  \pic (QU) at (1,4) {
    particle={quarkcol}{u}{up}{%
      \simeq2.16\MeV}{\!\myfrac{+\!2}{3}}{\myfrac{1}{2}}
  };
  \pic (QC) at (2,4) {
    particle={quarkcol}{c}{charm}{%
      \simeq1.27\GeV}{\!\myfrac{+\!2}{3}}{\myfrac{1}{2}}
  };
  \pic (QT) at (3,4) {
    particle={quarkcol}{t}{top}{%
      \simeq173\GeV}{\!\myfrac{+\!2}{3}}{\myfrac{1}{2}}
  };
  \pic (QD) at (1,3) {
    particle={quarkcol}{d}{down}{%
      \simeq4.7\MeV}{\!\myfrac{-\!1}{3}}{\myfrac{1}{2}}
  };
  \pic (QS) at (2,3) {
    particle={quarkcol}{s}{strange}{%
      \simeq94\MeV}{\!\myfrac{-\!1}{3}}{\myfrac{1}{2}}
  };
  \pic (QB) at (3,3) {
    particle={quarkcol}{b}{bottom}{%
      \simeq4.18\GeV}{\!\myfrac{-\!1}{3}}{\myfrac{1}{2}}
  };
  \node[quarkcol,bflabel,above right=0pt and -2pt]
    at (QD-sw) {QUARKS};
  
  % LEPTONS
  \pic (EL) at (1,2) { %[pshift={(50:0.9)}]
    particle={leptoncol}{e}{electron}{%
      \simeq0.511\MeV}{-1}{\myfrac{1}{2}}
  };
  \pic[symb shift=(-90:0.6pt)] (MU) at (2,2) {
    particle={leptoncol}{$\PGm$}{muon}{%
      \simeq106\MeV}{-1}{\myfrac{1}{2}}
  };
  \pic (TAU) at (3,2) {
    particle={leptoncol}{$\PGt$}{tau}{%
      \simeq1.78\GeV}{-1}{\myfrac{1}{2}}
  };
  \pic[scale name=0.83] (NE) at (1,1) {
    particle={leptoncol}{$\PGn{\text{e}}$}{electron\\[-3pt]neutrino}{%
      <0.8\eV}{0}{\myfrac{1}{2}}
  };
  \pic[symb shift=(-90:0.6pt),scale name=0.83] (NM) at (2,1) {
    particle={leptoncol}{$\PGn{\PGm}$}{muon\\[-3pt]neutrino}{%
      <0.17\MeV}{0}{\myfrac{1}{2}}
  };
  \pic[scale name=0.83] (NT) at (3,1) {
    particle={leptoncol}{$\PGn{\PGt}$}{tau\\[-3pt]neutrino}{%
      <18.2\MeV}{0}{\myfrac{1}{2}}
  };
  \node[leptoncol,bflabel,above right=0pt and -2pt]
    at (NE-sw) {LEPTONS};
  
  % GAUGE BOSONS
  \pic (GLU) at (4,4) {
    particle={gaugecol}{g}{gluon}{%
      0}{0}{1}
  };
  \pic (GAM) at (4,3) {
    particle={gaugecol}{$\gamma$}{photon}{%
      0}{0}{1}
  };
  \pic (W) at (4,2) {
    particle={gaugecol}{W}{W boson}{% %$\mathrm{W}^\pm$
      \simeq80.4\GeV}{\pm1}{1}
  };
  \pic (Z) at (4,1) {
    particle={gaugecol}{Z}{Z boson}{% %$\mathrm{Z}^0$
      \simeq91.2\GeV}{0}{1}
  };
  %%%\pic[scale name=0.7] (L) at (5.6,1) {
  %%%  particle={gaugecol}{LQ}{leptoquark}{% %^0$
  %%%    ?}{?}{0 or 1} %>1\TeV
  %%%};
  \node[gaugecol,bflabel,below right=0pt and 2pt]
    (GB) at (Z-se) {GAUGE BOSONS};
  \node[gaugecol,bflabel,below right=-1pt and 2pt,scale=0.7]
    at (GB.south west) {VECTOR BOSONS};
  
  % SCALAR BOSONS
  \pic (HIG) at (5,4) {
    particle={scalarcol}{H}{Higgs}{%
      \simeq125\GeV}{0}{0}
  };
  \node[scalarcol,bflabel,above left=-2pt and 2pt]
    at (HIG-se) {SCALAR BOSONS};
  
  % TENSOR BOSONS
  \pic (GRA) at (6,4) {
    particle={tensorcol}{G}{graviton}{%
      0}{0}{2}
  };
  \node[tensorcol,bflabel,above left=-2pt and 2pt]
    (TB) at (GRA-se) {TENSOR BOSONS};
  \node[tensorcol,bflabel,above left=-1pt and 2pt,scale=0.7]
    at (TB.north east) {HYPOTHETICAL};
  
\end{tikzpicture}
} % close foreach loop over \f


% SM PARTICLES, incl. ANTIPARTICLES
\foreach \f in {1}{ % fill particle boxes
\begin{tikzpicture}[fill box=\f]
  \message{^^JSM particles: fill box=\f}
  
  % HEADERS
  \def\nfermioncols{6} % number of fermion columns
  \def\nbosoncols{2} % number of boson columns
  \headers
  \legend
  
  % QUARKS
  \pic[quark balls=1,scale name=1] (QU) at (1,4) {
    particle={quarkcol}{u}{up}{%
      \simeq2.16\MeV}{\!\myfrac{+\!2}{3}}{\myfrac{1}{2}}
  };
  \pic[quark balls=1,scale name=1] (QC) at (2,4) {
    particle={quarkcol}{c}{charm}{%
      \simeq1.27\GeV}{\!\myfrac{+\!2}{3}}{\myfrac{1}{2}}
  };
  \pic[quark balls=1,scale name=1] (QT) at (3,4) {
    particle={quarkcol}{t}{top}{%
      \simeq173\GeV}{\!\myfrac{+\!2}{3}}{\myfrac{1}{2}}
  };
  \pic[quark balls=1,scale name=1] (QD) at (1,3) {
    particle={quarkcol}{d}{down}{%
      \simeq4.7\MeV}{\!\myfrac{-\!1}{3}}{\myfrac{1}{2}}
  };
  \pic[quark balls=1,scale name=1] (QS) at (2,3) {
    particle={quarkcol}{s}{strange}{%
      \simeq94\MeV}{\!\myfrac{-\!1}{3}}{\myfrac{1}{2}}
  };
  \pic[quark balls=1,scale name=1] (QB) at (3,3) {
    particle={quarkcol}{b}{bottom}{%
      \simeq4.18\GeV}{\!\myfrac{-\!1}{3}}{\myfrac{1}{2}}
  };
  \node[quarkcol,bflabel,above right=0pt and -2pt]
    at (QD-sw) {QUARKS};
  
  % ANTIQUARKS
  \pic[quark balls=2,scale name=1] (QU) at (4,4) {
    particle={quarkcol}{$\overline{\text{u}}$}{antiup}{%
      \simeq2.16\MeV}{\!\myfrac{-\!2}{3}}{\myfrac{1}{2}}
  };
  \pic[quark balls=2,scale name=0.95] (QC) at (5,4) {
    particle={quarkcol}{$\overline{\text{c}}$}{anticharm}{%
      \simeq1.27\GeV}{\!\myfrac{-\!2}{3}}{\myfrac{1}{2}}
  };
  \pic[quark balls=2,scale name=1] (QT) at (6,4) {
    particle={quarkcol}{$\overline{\text{t}}$}{antitop}{%
      \simeq173\GeV}{\!\myfrac{-\!2}{3}}{\myfrac{1}{2}}
  };
  \pic[quark balls=2,scale name=0.95,symb shift=(90:0.5pt)] (QD) at (4,3) {
    particle={quarkcol}{$\overline{\text{d}}$}{antidown}{%
      \simeq4.7\MeV}{\!\myfrac{+\!1}{3}}{\myfrac{1}{2}}
  };
  \pic[quark balls=2,scale name=0.87] (QS) at (5,3) {
    particle={quarkcol}{$\overline{\text{s}}$}{antistrange}{%
      \simeq94\MeV}{\!\myfrac{+\!1}{3}}{\myfrac{1}{2}}
  };
  \pic[quark balls=2,scale name=0.87,symb shift=(90:0.5pt)] (QB) at (6,3) {
    particle={quarkcol}{$\overline{\text{b}}$}{antibottom}{%
      \simeq4.18\GeV}{\!\myfrac{+\!1}{3}}{\myfrac{1}{2}}
  };
  
  % LEPTONS
  \pic[symb shift=(60:1pt)] (EL) at (1,2) {
    particle={leptoncol}{e$^-$}{electron}{%
      \simeq0.511\MeV}{-1}{\myfrac{1}{2}}
  };
  \pic[symb shift=(30:1pt)] (MU) at (2,2) {
    particle={leptoncol}{$\PGm^-$}{muon}{%
      \simeq106\MeV}{-1}{\myfrac{1}{2}}
  };
  \pic[symb shift=(60:1.3pt)] (TAU) at (3,2) {
    particle={leptoncol}{$\PGt^-$}{tau}{%
      \simeq1.78\GeV}{-1}{\myfrac{1}{2}}
  };
  \pic[symb shift=(-80:0.3pt),scale name=0.83] (NE) at (1,1) {
    particle={leptoncol}{$\PGn{\text{e}}$}{electron\\[-3pt]neutrino}{%
      <0.8\eV}{0}{\myfrac{1}{2}}
  };
  \pic[symb shift=(-60:0.7pt),scale name=0.83] (NM) at (2,1) {
    particle={leptoncol}{$\PGn{\PGm}$}{muon\\[-3pt]neutrino}{%
      <0.17\MeV}{0}{\myfrac{1}{2}}
  };
  \pic[symb shift=(-75:0.3pt),scale name=0.83] (NT) at (3,1) {
    particle={leptoncol}{$\PGn{\PGt}$}{tau\\[-3pt]neutrino}{%
      <18.2\MeV}{0}{\myfrac{1}{2}}
  };
  \node[leptoncol,bflabel,above right=0pt and -2pt]
    at (NE-sw) {LEPTONS};
  
  % ANTI-LEPTONS
  \pic[symb shift=(60:1pt)] (EL) at (4,2) {
    particle={leptoncol}{e$^+$}{positron}{%
      \simeq0.511\MeV}{+1}{\myfrac{1}{2}}
  };
  \pic[symb shift=(30:1pt)] (MU) at (5,2) {
    particle={leptoncol}{$\PGm^+$}{antimuon}{%
      \simeq106\MeV}{+1}{\myfrac{1}{2}}
  };
  \pic[symb shift=(60:1.3pt)] (TAU) at (6,2) {
    particle={leptoncol}{$\PGt^+$}{antitau}{%
      \simeq1.78\GeV}{+1}{\myfrac{1}{2}}
  };
  \pic[symb shift=(0:0.2pt),scale name=0.80] (NE) at (4,1) {
    particle={leptoncol}{$\PAGn{\text{e}}$}{electron\\[-3pt]antineutrino}{%
      <0.8\eV}{0}{\myfrac{1}{2}}
  };
  \pic[symb shift=(-60:0.4pt),scale name=0.80] (NM) at (5,1) {
    particle={leptoncol}{$\PAGn{\PGm}$}{muon\\[-3pt]antineutrino}{%
      <0.17\MeV}{0}{\myfrac{1}{2}}
  };
  \pic[symb shift=(-50:0.3pt),scale name=0.80] (NT) at (6,1) {
    particle={leptoncol}{$\PAGn{\PGt}$}{tau\\[-3pt]antineutrino}{%
      <18.2\MeV}{0}{\myfrac{1}{2}}
  };
  
  % GAUGE BOSONS
  \pic[gluon balls=1] (GLU) at (\nfermioncols+1,4) {
    particle={gaugecol}{g}{gluon}{%
      0}{0}{1}
  };
  \pic (GAM) at (\nfermioncols+1,3) {
    particle={gaugecol}{$\gamma$}{photon}{%
      0}{0}{1}
  };
  \pic (Z) at (\nfermioncols+1,2) {
    particle={gaugecol}{Z$^0$}{Z boson}{% %$\mathrm{Z}^0$
      \simeq91.2\GeV}{0}{1}
  };
  \pic[symb shift=(10:0.5pt)] (W) at (\nfermioncols+1,1) {
    particle={gaugecol}{W$^-$}{W boson}{%
      \simeq80.4\GeV}{-1}{1}
  };
  \pic[symb shift=(10:0.5pt)] (W) at (\nfermioncols+2,1) {
    particle={gaugecol}{W$^+$}{W boson}{%
      \simeq80.4\GeV}{+1}{1}
  };
  %\pic[symb shift=(10:0.5pt),ball radius=11pt] (W) at (\nfermioncols+1,2) {
  %  particle={gaugecol}{W$^\pm$}{W boson}{% %$\mathrm{W}^\pm$
  %    \simeq80.4\GeV}{\pm1}{1}
  %};
  \node[gaugecol,bflabel,below right=0pt and 2pt]
    (GB) at (Z-se) {GAUGE BOSONS};
  \node[gaugecol,bflabel,below right=-1pt and 2pt,scale=0.7]
    at (GB.south west) {VECTOR BOSONS};
  
  % SCALAR BOSONS
  \pic (HIG) at (\nfermioncols+2,4) {
    particle={scalarcol}{H}{Higgs}{%
      \simeq125\GeV}{0}{0}
  };
  \node[scalarcol,bflabel,below left=0pt and -2pt]
    at (HIG-ne) {SCALAR BOSONS};
  
\end{tikzpicture}
} % close foreach loop over \f


% SM PARTICLES extended with 2HDM
\foreach \f in {1}{ % fill particle boxes
\begin{tikzpicture}[fill box=\f]
  \message{^^JSM particles: fill box=\f}
  
  % HEADERS
  \headers
  \legend
  
  % QUARKS
  \pic (QU) at (1,4) {
    particle={quarkcol}{u}{up}{%
      \simeq2.16\MeV}{\!\myfrac{+\!2}{3}}{\myfrac{1}{2}}
  };
  \pic (QC) at (2,4) {
    particle={quarkcol}{c}{charm}{%
      \simeq1.27\GeV}{\!\myfrac{+\!2}{3}}{\myfrac{1}{2}}
  };
  \pic (QT) at (3,4) {
    particle={quarkcol}{t}{top}{%
      \simeq173\GeV}{\!\myfrac{+\!2}{3}}{\myfrac{1}{2}}
  };
  \pic (QD) at (1,3) {
    particle={quarkcol}{d}{down}{%
      \simeq4.7\MeV}{\!\myfrac{-\!1}{3}}{\myfrac{1}{2}}
  };
  \pic (QS) at (2,3) {
    particle={quarkcol}{s}{strange}{%
      \simeq94\MeV}{\!\myfrac{-\!1}{3}}{\myfrac{1}{2}}
  };
  \pic (QB) at (3,3) {
    particle={quarkcol}{b}{bottom}{%
      \simeq4.18\GeV}{\!\myfrac{-\!1}{3}}{\myfrac{1}{2}}
  };
  \node[quarkcol,bflabel,above right=0pt and -2pt]
    at (QD-sw) {QUARKS};
  
  % LEPTONS
  \pic (EL) at (1,2) { %[pshift={(50:0.9)}]
    particle={leptoncol}{e}{electron}{%
      \simeq0.511\MeV}{-1}{\myfrac{1}{2}}
  };
  \pic[symb shift=(-90:0.6pt)] (MU) at (2,2) {
    particle={leptoncol}{$\PGm$}{muon}{%
      \simeq106\MeV}{-1}{\myfrac{1}{2}}
  };
  \pic (TAU) at (3,2) {
    particle={leptoncol}{$\PGt$}{tau}{%
      \simeq1.78\GeV}{-1}{\myfrac{1}{2}}
  };
  \pic[scale name=0.83] (NE) at (1,1) {
    particle={leptoncol}{$\PGn{\text{e}}$}{electron\\[-3pt]neutrino}{%
      <0.8\eV}{0}{\myfrac{1}{2}}
  };
  \pic[symb shift=(-90:0.6pt),scale name=0.83] (NM) at (2,1) {
    particle={leptoncol}{$\PGn{\PGm}$}{muon\\[-3pt]neutrino}{%
      <0.17\MeV}{0}{\myfrac{1}{2}}
  };
  \pic[scale name=0.83] (NT) at (3,1) {
    particle={leptoncol}{$\PGn{\PGt}$}{tau\\[-3pt]neutrino}{%
      <18.2\MeV}{0}{\myfrac{1}{2}}
  };
  \node[leptoncol,bflabel,above right=0pt and -2pt]
    at (NE-sw) {LEPTONS};
  
  % GAUGE BOSONS
  \pic (GLU) at (4,4) {
    particle={gaugecol}{g}{gluon}{%
      0}{0}{1}
  };
  \pic (GAM) at (4,3) {
    particle={gaugecol}{$\gamma$}{photon}{%
      0}{0}{1}
  };
  \pic (W) at (4,2) {
    particle={gaugecol}{W}{W boson}{% %$\mathrm{W}^\pm$
      \simeq80.4\GeV}{\pm1}{1}
  };
  \pic (Z) at (4,1) {
    particle={gaugecol}{Z}{Z boson}{% %$\mathrm{Z}^0$
      \simeq91.2\GeV}{0}{1}
  };
  %\node[gaugecol,bflabel,below right=0pt and 2pt]
  %  (GB) at (Z-se) {GAUGE BOSONS};
  %\node[gaugecol,bflabel,below right=-1pt and 2pt,scale=0.7]
  %  at (GB.south west) {VECTOR BOSONS};
  \node[gaugecol,font=\bf,inner sep=0.5pt,below right=2pt and -4pt,scale=0.88,xscale=0.9]
    (GB) at (Z-sw) {GAUGE BOSONS};
  \node[gaugecol,font=\bf,inner sep=0.5pt,below right=2pt,scale=0.6]
    at (GB.south west) {VECTOR BOSONS};
  
  % SCALAR BOSONS
  \pic[scale name=0.88] (HIG-h) at (5,4) {
    particle={scalarcol}{h}{light\\[-3pt]Higgs}{%
      \simeq125\GeV?}{0}{0}
  };
  \pic[scale name=0.88] (HIG-H) at (5,3) {
    particle={scalarcol}{H}{heavy\\[-3pt]Higgs}{%
      ?}{0}{0}
  };
  \pic[scale name=0.79] (HIG-A) at (5,2) {
    particle={scalarcol}{A}{pseudoscalar\\[-3pt]Higgs}{%
      ?}{0}{0}
  };
  %\pic[scale name=0.79] (HIG-a) at (6.31,2) { % for 2HDM + a
  %  particle={scalarcol}{a}{portal\\[-3pt]pseudoscalar}{%
  %    ?}{0}{0}
  %};
  %%\pic (chi) at (6.31,1) { % dark matter in 2HDM + a
  %  particle={leptoncol}{$\chi$}{WIMP}{%
  %    45\MeV}{0}{} %\myfrac{1}{2}
  %};
  \pic[scale name=0.88] (HIG-C) at (5,1) {
    particle={scalarcol}{H$^\pm$}{charged\\[-3pt]Higgs}{%
      ?}{0}{0}
  };
  \node[scalarcol,bflabel,below left=2pt and -2pt]
    at (HIG-h-ne) {(PSEUDO)SCALAR BOSONS};
  
\end{tikzpicture}
} % close foreach loop over \f


% SUPERSYMMETRY PARTICLES in MSSM with single Higgsino shown
\foreach \f in {1}{ % fill particle boxes
\begin{tikzpicture}[fill box=\f]
  \message{^^JSM particles: fill box=\f}
  
  % HEADERS
  \headerMSSM
  \legend
  
  % SQUARKS
  \pic[symb shift=(90:0.4pt),scale name=0.84] (QU) at (1,4) {
    particle={quarkcol}{$\mytilde{u}$}{up\\[-3pt]squark}{%
      ?}{\!\myfrac{+\!2}{3}}{0}
  };
  \pic[symb shift=(90:0.4pt),scale name=0.84] (QC) at (2,4) {
    particle={quarkcol}{$\mytilde{c}$}{charm\\[-3pt]squark}{%
      ?}{\!\myfrac{+\!2}{3}}{0}
  };
  \pic[symb shift=(90:0.6pt)] (QT) at (3,4) {
    particle={quarkcol}{$\mytilde{t}$}{stop}{%
      ?}{\!\myfrac{+\!2}{3}}{0}
  };
  \pic[symb shift=(90:0.6pt),scale name=0.84] (QD) at (1,3) {
    particle={quarkcol}{$\mytilde{d}$}{down\\[-3pt]squark}{%
      ?}{\!\myfrac{-\!1}{3}}{0}
  };
  \pic[symb shift=(90:0.4pt),scale name=0.84] (QS) at (2,3) {
    particle={quarkcol}{$\mytilde{s}$}{strange\\[-3pt]squark}{%
      ?}{\!\myfrac{-\!1}{3}}{0}
  };
  \pic[symb shift=(90:0.6pt)] (QB) at (3,3) {
    particle={quarkcol}{$\mytilde{b}$}{sbottom}{%
      ?}{\!\myfrac{-\!1}{3}}{0}
  };
  \node[quarkcol,bflabel,above right=0pt and -2pt]
    at (QD-sw) {SQUARKS};
  
  % SLEPTONS
  \pic[symb shift=(90:0.4pt)] (EL) at (1,2) {
    particle={leptoncol}{$\mytilde{e}$}{selectron}{%
      ?}{-1}{0}
  };
  \pic (MU) at (2,2) {
    particle={leptoncol}{$\widetilde{\PGm}$}{smuon}{%
      ?}{-1}{0}
  };
  \pic[symb shift=(90:0.4pt)] (TAU) at (3,2) {
    particle={leptoncol}{$\widetilde{\PGt}$}{stau}{%
      ?}{-1}{0}
  };
  \pic[scale name=0.83] (NE) at (1,1) {
    particle={leptoncol}{$\PSGn{e}$}{electron\\[-3pt]sneutrino}{%
      ?}{0}{0}
  };
  \pic[symb shift=(-90:0.5pt),scale name=0.83] (NM) at (2,1) {
    particle={leptoncol}{$\PSGn{\PGm}$}{muon\\[-3pt]sneutrino}{%
      ?}{0}{0}
  };
  \pic[scale name=0.83] (NT) at (3,1) {
    particle={leptoncol}{$\PSGn{\PGt}$}{tau\\[-3pt]sneutrino}{%
      ?}{0}{0}
  };
  \node[leptoncol,bflabel,above right=0pt and -2pt]
    at (NE-sw) {SLEPTONS};
  
  % GAUGINOS
  \pic (GLU) at (4,4) {
    particle={gaugecol}{$\mytilde{g}$}{gluino}{%
      ?}{0}{\myfrac{1}{2}}
  };
  \pic (GAM) at (4,3) {
    particle={gaugecol}{$\widetilde{\gamma}$}{photino}{%
      ?}{0}{\myfrac{1}{2}}
  };
  \pic (W) at (4,2) {
    particle={gaugecol}{$\mytilde{W}$}{wino}{%
      ?}{\pm1}{\myfrac{1}{2}}
  };
  \pic (Z) at (4,1) {
    particle={gaugecol}{$\mytilde{Z}$}{zino}{% %^0$
      ?}{0}{\myfrac{1}{2}}
  };
  \node[gaugecol,bflabel,below right=0pt and 2pt]
    (GB) at (Z-se) {GAUGINOS};
  
  % HIGGSINOS
  \pic[symb shift=(90:0.3pt),scale name=0.88] (HIG) at (5,4) {
    particle={scalarcol}{$\mytilde{H}$}{Higgsino}{%
      ?}{0}{\myfrac{1}{2}}
  };
  \node[scalarcol,bflabel,above left=-2pt and 2pt]
    at (HIG-se) {HIGGSINOS};
  
\end{tikzpicture}
} % close foreach loop over \f


% SUPERSYMMETRY PARTICLES in MSSM with three Higgsinos shown
\foreach \f in {1}{ % fill particle boxes
\begin{tikzpicture}[fill box=\f]
  \message{^^JSM particles: fill box=\f}
  
  % HEADERS
  \headerMSSM
  \legend
  
  % SQUARKS
  \pic[symb shift=(90:0.4pt),scale name=0.84] (QU) at (1,4) {
    particle={quarkcol}{$\mytilde{u}$}{up\\[-3pt]squark}{%
      ?}{\!\myfrac{+\!2}{3}}{0}
  };
  \pic[symb shift=(90:0.4pt),scale name=0.84] (QC) at (2,4) {
    particle={quarkcol}{$\mytilde{c}$}{charm\\[-3pt]squark}{%
      ?}{\!\myfrac{+\!2}{3}}{0}
  };
  \pic[symb shift=(90:0.6pt)] (QT) at (3,4) {
    particle={quarkcol}{$\mytilde{t}$}{stop}{%
      ?}{\!\myfrac{+\!2}{3}}{0}
  };
  \pic[symb shift=(90:0.6pt),scale name=0.84] (QD) at (1,3) {
    particle={quarkcol}{$\mytilde{d}$}{down\\[-3pt]squark}{%
      ?}{\!\myfrac{-\!1}{3}}{0}
  };
  \pic[symb shift=(90:0.4pt),scale name=0.84] (QS) at (2,3) {
    particle={quarkcol}{$\mytilde{s}$}{strange\\[-3pt]squark}{%
      ?}{\!\myfrac{-\!1}{3}}{0}
  };
  \pic[symb shift=(90:0.6pt)] (QB) at (3,3) {
    particle={quarkcol}{$\mytilde{b}$}{sbottom}{%
      ?}{\!\myfrac{-\!1}{3}}{0}
  };
  \node[quarkcol,bflabel,above right=0pt and -2pt]
    at (QD-sw) {SQUARKS};
  
  % SLEPTONS
  \pic[symb shift=(90:0.4pt)] (EL) at (1,2) {
    particle={leptoncol}{$\mytilde{e}$}{selectron}{%
      ?}{-1}{0}
  };
  \pic (MU) at (2,2) {
    particle={leptoncol}{$\widetilde{\PGm}$}{smuon}{%
      ?}{-1}{0}
  };
  \pic[symb shift=(90:0.4pt)] (TAU) at (3,2) {
    particle={leptoncol}{$\widetilde{\PGt}$}{stau}{%
      ?}{-1}{0}
  };
  \pic[scale name=0.83] (NE) at (1,1) {
    particle={leptoncol}{$\PSGn{e}$}{electron\\[-3pt]sneutrino}{%
      ?}{0}{0}
  };
  \pic[symb shift=(-90:0.5pt),scale name=0.83] (NM) at (2,1) {
    particle={leptoncol}{$\PSGn{\PGm}$}{muon\\[-3pt]sneutrino}{%
      ?}{0}{0}
  };
  \pic[scale name=0.83] (NT) at (3,1) {
    particle={leptoncol}{$\PSGn{\PGt}$}{tau\\[-3pt]sneutrino}{%
      ?}{0}{0}
  };
  \node[leptoncol,bflabel,above right=0pt and -2pt]
    at (NE-sw) {SLEPTONS};
  
  % SGAUGINOS
  \pic (GLU) at (4,4) {
    particle={gaugecol}{$\mytilde{g}$}{gluino}{%
      ?}{0}{\myfrac{1}{2}}
  };
  \pic (GAM) at (4,3) {
    particle={gaugecol}{$\widetilde{\gamma}$}{photino}{%
      ?}{0}{\myfrac{1}{2}}
  };
  %\pic[symb shift=(-20:0.5pt)] (W) at (4,2) {
  %  particle={gaugecol}{$\mytilde{W}^{\raisebox{-1.6pt}{$\scriptstyle\pm$}}$}{wino}{%
  %    ?}{\pm1}{\myfrac{1}{2}}
  %};
  \pic (W) at (4,2) {
    particle={gaugecol}{$\mytilde{W}$}{wino}{%
      ?}{\pm1}{\myfrac{1}{2}}
  };
  \pic (Z) at (4,1) {
    particle={gaugecol}{$\mytilde{Z}$}{zino}{% %^0$
      ?}{0}{\myfrac{1}{2}}
  };
  \node[gaugecol,font=\bf,inner sep=0.5pt,above=1pt,scale=0.69]
    (GB) at (4,4.5) {GAUGINOS};
  %\node[gaugecol,bflabel,below right=0pt and 2pt]
  %  (GB) at (Z-se) {GAUGINOS};
  
  % HIGGSINOS
  \pic[scale name=0.88] (HIG) at (5,4) {
    particle={scalarcol}{$\mytilde{h}$}{light\\[-3pt]Higgsino}{%
      ?}{0}{\myfrac{1}{2}}
  };
  \pic[scale name=0.88] (HIG) at (5,3) {
    particle={scalarcol}{$\mytilde{H}$}{heavy\\[-3pt]Higgsino}{%
      ?}{0}{\myfrac{1}{2}}
  };
  \pic[scale name=0.88,symb shift=(0:0.7pt)] (HIG) at (5,2) {
    particle={scalarcol}{$\mytilde{H}^{\raisebox{-1.3pt}{$\scriptstyle\pm$}}$}{charged\\[-3pt]Higgsino}{%
      ?}{\pm1}{\myfrac{1}{2}}
  };
  \node[scalarcol,bflabel,rotate=-90,above=1pt,scale=0.69]
    (GB) at (5,4.5) {HIGGSINOS};
  
\end{tikzpicture}
} % close foreach loop over \f


% SUPERSYMMETRY PARTICLES in MSSM (mass eigenstates)
% https://en.wikipedia.org/wiki/Minimal_Supersymmetric_Standard_Model
\foreach \f in {1}{ % fill particle boxes
\begin{tikzpicture}[fill box=\f]
  \message{^^JSM particles: fill box=\f}
  
  % HEADERS
  \headerMSSM
  \legend
  
  % SQUARKS
  \pic[symb shift=(90:0.4pt),scale name=0.84] (QU) at (1,4) {
    particle={quarkcol}{$\mytilde{u}$}{up\\[-3pt]squark}{%
      ?}{\!\myfrac{+\!2}{3}}{0}
  };
  \pic[symb shift=(90:0.4pt),scale name=0.84] (QC) at (2,4) {
    particle={quarkcol}{$\mytilde{c}$}{charm\\[-3pt]squark}{%
      ?}{\!\myfrac{+\!2}{3}}{0}
  };
  \pic[symb shift=(90:0.6pt)] (QT) at (3,4) {
    particle={quarkcol}{$\mytilde{t}$}{stop}{%
      ?}{\!\myfrac{+\!2}{3}}{0}
  };
  \pic[symb shift=(90:0.6pt),scale name=0.84] (QD) at (1,3) {
    particle={quarkcol}{$\mytilde{d}$}{down\\[-3pt]squark}{%
      ?}{\!\myfrac{-\!1}{3}}{0}
  };
  \pic[symb shift=(90:0.4pt),scale name=0.84] (QS) at (2,3) {
    particle={quarkcol}{$\mytilde{s}$}{strange\\[-3pt]squark}{%
      ?}{\!\myfrac{-\!1}{3}}{0}
  };
  \pic[symb shift=(90:0.6pt)] (QB) at (3,3) {
    particle={quarkcol}{$\mytilde{b}$}{sbottom}{%
      ?}{\!\myfrac{-\!1}{3}}{0}
  };
  \node[quarkcol,bflabel,above right=0pt and -2pt]
    at (QD-sw) {SQUARKS};
  
  % SLEPTONS
  \pic[symb shift=(90:0.4pt)] (EL) at (1,2) {
    particle={leptoncol}{$\mytilde{e}$}{selectron}{%
      ?}{-1}{0}
  };
  \pic (MU) at (2,2) {
    particle={leptoncol}{$\widetilde{\PGm}$}{smuon}{%
      ?}{-1}{0}
  };
  \pic[symb shift=(90:0.4pt)] (TAU) at (3,2) {
    particle={leptoncol}{$\widetilde{\PGt}$}{stau}{%
      ?}{-1}{0}
  };
  \pic[scale name=0.83] (NE) at (1,1) {
    particle={leptoncol}{$\PSGn{e}$}{electron\\[-3pt]sneutrino}{%
      ?}{0}{0}
  };
  \pic[symb shift=(-90:0.5pt),scale name=0.83] (NM) at (2,1) {
    particle={leptoncol}{$\PSGn{\PGm}$}{muon\\[-3pt]sneutrino}{%
      ?}{0}{0}
  };
  \pic[scale name=0.83] (NT) at (3,1) {
    particle={leptoncol}{$\PSGn{\PGt}$}{tau\\[-3pt]sneutrino}{%
      ?}{0}{0}
  };
  \node[leptoncol,bflabel,above right=0pt and -2pt]
    at (NE-sw) {SLEPTONS};
  
  % GLUINO
  \pic (GLU) at (4,4) {
    particle={gaugecol}{$\mytilde{g}$}{gluino}{%
      ?}{0}{\myfrac{1}{2}}
  };
  
  % CHARGINOS
  \pic[symb shift=(60:0.7pt),scale name=0.88] (CCHI1) at (4,2) {
    particle={gaugecol}{$\widetilde{\chi}_1^\pm$}{light\\[-3pt]chargino}{%
      ?}{\pm1}{\myfrac{1}{2}}
  };
  \pic[symb shift=(60:0.7pt),scale name=0.88] (CCHI2) at (4,1) {
    particle={gaugecol}{$\widetilde{\chi}_2^\pm$}{heavy\\[-3pt]chargino}{%
      ?}{\pm1}{\myfrac{1}{2}}
  };
  \def\s{\hspace{-0.03em}} % reduce spacing between letters
  \node[gaugecol,font=\bf,inner sep=0.5pt,above=1pt,scale=0.67]
    (GB) at (4,4.5) {GLUINO};
  \node[gaugecol,font=\bf,inner sep=0.5pt,above=1pt,scale=0.69,xscale=0.89]
    (GB) at (4,2.5) {C\s H\s A\s R\s G\s I\s N\s O\s S};
  
  % NEUTRALINOS
  \pic[symb shift=(60:0.3pt),scale name=0.88] (NCHI1) at (5,4) {
    particle={gaugecol}{$\widetilde{\chi}_1^0$}{lightest\\[-3pt]neutralino}{%
      ?}{0}{\myfrac{1}{2}}
  };
  \pic[symb shift=(60:0.3pt),scale name=0.84] (NCHI1) at (5,3) {
    particle={gaugecol}{$\widetilde{\chi}_2^0$}{2\textsuperscript{nd}\! lightest\\[-3pt]neutralino}{%
      ?}{0}{\myfrac{1}{2}}
  };
  \pic[symb shift=(60:0.3pt),scale name=0.82] (NCHI2) at (5,2) {
    particle={gaugecol}{$\widetilde{\chi}_3^0$}{2\textsuperscript{nd}\! heaviest\\[-3pt]neutralino}{%
      ?}{0}{\myfrac{1}{2}}
  };
  \pic[symb shift=(60:0.3pt),scale name=0.88] (NCHI2) at (5,1) {
    particle={gaugecol}{$\widetilde{\chi}_4^0$}{heaviest\\[-3pt]neutralino}{%
      ?}{0}{\myfrac{1}{2}}
  };
  \def\s{\hspace{-0.05em}} % reduce spacing between letters
  \node[gaugecol,font=\bf,inner sep=0.5pt,above=1pt,scale=0.66,xscale=0.88]
    (GB) at (5,4.5) {N\s E\s U\s T\s R\s A\s L\s I\s N\s O\s S};
  
\end{tikzpicture}
} % close foreach loop over \f


\end{document}