\documentclass[a4paper,10pt]{article}
\usepackage[usenames,dvipsnames,x11names]{xcolor}
\usepackage{tikz}
\usetikzlibrary{arrows,snakes,shapes}



%\proton{xposition,yposition}
\newcommand{\proton}[1]{%
    \shade[ball color=red] (#1) circle (.25);\draw (#1) node{$+$};
}

%\neutron{xposition,yposition}
\newcommand{\neutron}[1]{%
    \shade[ball color=green] (#1) circle (.25);
}

%\electron{xwidth,ywidth,rotation angle}
\newcommand{\electron}[3]{%
    \draw[rotate = #3](0,0) ellipse (#1 and #2)[color=blue];
    \shade[ball color=Gold2] (0,#2)[rotate=#3] circle (.1);
}

\newcommand{\nucleus}{%
    \neutron{0.1,0.3}
    \proton{0,0}
    \neutron{0.3,0.2}
    \proton{-0.2,0.1}
    \neutron{-0.1,0.3}
    \proton{0.2,-0.15}
    \neutron{-0.05,-0.12}
    \proton{0.17,0.21}
}

%\photoelectron{xwidth,ywidth,rotation angle}
\newcommand{\photoelectron}[3]{%
    \draw[rotate = #3](0,0) ellipse (#1 and #2)[color=blue];%
    \draw[snake=coil,%
        line after snake=0pt, segment aspect=0,%
        segment length=20pt,color=red!50!blue](#3:#1)-- +(-6,0)%
        node[fill=white!70!Gold2,draw=red!80!white, above=0.2cm,pos=0.5]%
            {Incoming $\gamma$-photon};%
    \draw[-stealth,Gold2](#3:#1) -- ++ (5,0.625);%
    \shade[ball color=Gold2](#3:#1)  --  ++(4,0.5)%
        node[fill=white!70!Gold2,draw=red!80!white,%
        text width=3cm, below right=0.2cm]%
            {Photoelectron from an inner shell} circle(0.1);%
    \fill  (#1,0)[rotate=#3,color=white,opaque] circle (.1);%
    \draw  (#1,0)[rotate=#3,color=Gold2] circle (.1) ;%
}

%\comptonelectron{xwidth,ywidth,rotation angle}
\newcommand{\comptonelectron}[3]{%
    \draw[rotate = #3](0,0) ellipse (#1 and #2)[color=blue];%
    \draw[snake=coil, line after snake=0pt,%
        segment aspect=0, segment length=10pt,color=red!50!blue]%
        (#3:#1)-- +(-6,0)%
        node[fill=white!70!Gold2,draw=red!80!white, above=0.2cm,pos=0.5]%
            {Incoming $\gamma$-photon};%
    \draw[-stealth,Gold2](#3:#1) -- ++ (5,2.5);%
    \shade[ball color=Gold2](#3:#1)  --  ++(4,2.0)%
        node[fill=white!70!Gold2,draw=red!80!white, text width=3cm,%
        below right=0.2cm]{Scattered electron from an outer shell} circle(0.1);%
    \fill  (#1,0)[rotate=#3,color=white,opaque] circle (.1);%
    \draw  (#1,0)[rotate=#3,color=Gold2] circle (.1) ;%
    \draw[snake=coil, line after snake=1mm, segment aspect=0,%
        segment length=15pt,color=red!50!blue,-stealth] (#3:#1)-- ++(6,-3)%
        node[fill=white!70!Gold2,draw=red!80!white, right=1cm,pos=0.5]%
            {Scattered $\gamma$-photon};%
}

%\paircreation{impact parameter}
\newcommand{\paircreation}[1]{%
    \draw[snake=coil, line after snake=0pt, segment aspect=0,%
        segment length=5pt,color=red!50!blue] (0,#1)-- +(-6,0)%
        node[fill=white!70!Gold2,draw=red!80!white, above=0.2cm,pos=0.5]%
            {Incoming $\gamma$-photon};%
    \draw[-stealth,Gold2](0,#1) -- ++ (5,2.5);%
    \shade[ball color=Gold2](0,#1)  --  ++(4,2.0)%
        node[fill=white!70!Gold2,draw=red!80!white, below right=0.2cm]%
            {Positron} circle(0.1);%
    \draw[-stealth,Gold2](0,#1) -- ++ (4,-2.0);%
    \shade[ball color=Gold2](0,#1)  --  ++(3.2,-1.6)%
        node[fill=white!70!Gold2!,draw=red!80!white, above right=0.2cm]%
            {Electron} circle(0.1);%
}
%
\begin{document}

\pagestyle{empty}

\begin{figure}
    \centering
    \begin{tikzpicture}[scale=0.65]
        \nucleus
        \electron{1.2}{1.4}{260}
        \electron{4}{2}{30}
        \electron{5}{1}{60}
        \electron{5.5}{1.5}{150}
        \electron{4.8}{2.25}{80}
        \photoelectron{1.5}{0.75}{80}
    \end{tikzpicture}
\caption{Photoelectric effect}
\end{figure}

\begin{figure}
    \centering
    \begin{tikzpicture}[scale=0.65]
        \nucleus
        \electron{1.5}{0.75}{80}
        \electron{1.2}{1.4}{260}
        \electron{4}{2}{30}
        \electron{5}{1}{60}
        \electron{5.5}{1.5}{150}
        \comptonelectron{4.8}{2.25}{80}
    \end{tikzpicture}
    \caption{Compton scattering}
\end{figure}

\begin{figure}
    \centering
    \begin{tikzpicture}[scale=0.65]
        \nucleus
        \electron{1.5}{0.75}{80}
        \electron{1.2}{1.4}{260}
        \electron{4}{2}{30}
        \electron{5}{1}{60}
        \electron{5.5}{1.5}{150}
        \electron{4.8}{2.25}{80}
        \paircreation{1}
    \end{tikzpicture}
    \caption{Pair creation.}
\end{figure}

\end{document}


