I'm trying to draw the following diagram in TikZ :
Here's my attempt to draw it :
\documentclass[tikz,border=50mm]{standalone}
\usetikzlibrary{calc}
\usepackage{tikz-3dplot}
\usetikzlibrary{3d}
\usetikzlibrary{arrows.meta}
\usepackage{circuitikz}
\usetikzlibrary{decorations.pathmorphing,patterns, snakes}
\usetikzlibrary{arrows, shapes, positioning, calc, decorations.text, angles,
quotes}
\usetikzlibrary{decorations.markings}
\begin{tikzpicture}[scale=2 ,>=stealth]
\foreach \i in {0,2} {
\draw[black, thick] (2,\i) arc [x radius=2, y radius=0.5, start angle=0, end angle=180];
\draw[black, thick] (-2,\i) arc [x radius=2, y radius=0.5, start angle=180, end angle=360];
}
\draw[->] (2,0) arc [start angle=0,end angle=2,x radius=2cm,y radius =1cm] ;
\node[right] at (2.1,0) {$I$};
\draw[<-] (2,2) arc [start angle=2,end angle=4,x radius=2cm,y radius =1cm] ;
\node[right] at (2.1,2) {$I$};
\draw[->] (0,0)--(-2,0) node[midway, above] {$R$};
\draw[->] (0,2)--(-2,2) node[midway, above] {$R$};
\draw[smooth, dashed, ->] (0,-2)--(0,4) node[left] {$z$};
\filldraw[] (0,0)circle(0.025) node[right] {$O_1$};
\filldraw[] (0,2)circle(0.025) node[right] {$O_2$};
\filldraw[] (0,1)circle(0.025) node[left] {$M$};
\filldraw[] (0,3.5)circle(0.025) node[left] {$N$};
\filldraw[] (0,-1.5)circle(0.025) node[left] {$P$};
\draw[smooth, <->] (0.5, 2)--(0.5,3.5) node[right, midway] {$a$};
\draw[smooth, <->] (0.5, 2)--(0.5, 1) node[right, midway] {$d/2$};
\draw[smooth, <->] (0.5, 1)--(0.5,0) node[right, midway] {$d/2$};
\draw[smooth, <->] (0.5, 0)--(0.5,-1.5) node[right, midway] {$b$};
\end{tikzpicture}
Here's the result (that's not satisfying me) I just want to know how can I draw an ellipse with an arrow as the figure shows, and how can I make it look more fancy ?
\tdplotsetmaincoords
. Circles are drawn in the x,y plane.